收藏 分销(赏)

Shell脚本速查手册.pdf

上传人:Stan****Shan 文档编号:1239848 上传时间:2024-04-19 格式:PDF 页数:28 大小:886.66KB 下载积分:25 金币
下载 相关 举报
Shell脚本速查手册.pdf_第1页
第1页 / 共28页
Shell脚本速查手册.pdf_第2页
第2页 / 共28页


点击查看更多>>
资源描述
目录 前言 4 Bash 脚本基础 5 Bash 脚本进阶 14 Bash 编写常用命令 20 Bash 公共库 22 推荐阅读 28 4 前言 Bash 脚本基础 Bash 脚本基础 1.Bash 脚本定义变量 在使用 Bash 编写脚本时,你可以根据使用的场景,定义不同类型的变量,从而完成整个脚本的开发。脚本变量类型 Bash 脚本的变量可以细分为以下三个类型:(1)局部变量:局部变量在脚本或命令中定义,仅在当前 shell 实例中有效,其他 shell 启动的程序不能访问局部变量;(2)环境变量:所有的程序,包括 shell 启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候 shell 脚本也可以定义环境变量;(3)shell 变量:shell 变量是由 shell 程序设置的特殊变量。shell 变量中有一部分是环境变量,有一部分是局部变量。定义变量和使用变量 在定义和使用变量时,应遵循如下描述:(1)定义变量:name=value 需要注意,等号两侧不能有空格;(2)使用变量:echo$name 或 echo$name;(3)定义局部变量:local name=test;(4)定义只读变量:readonly name;(5)删除变量:unset name。6 Bash 脚本基础 Bash 脚本基础 定义数组 定义数组:myArray=(value0 value1 value2)。使用数组 使用数组:$数组名下标。获取数组所有元素$my_array*或者$my_array 可以获得数组的所有元素。获取数组长度$#array_name 或者$#array_name*可以获得数组长度。4.Bash 脚本运算符 Bash 为开发者提供了多种运算符,方便开发者进行逻辑运算。Bash 中的算数运算符 运算符 说明+加法-减法*乘法/除法%取余=赋值=相等。用于比较两个数字,相同则返回 true。8 Bash 脚本基础 Bash 脚本基础 运算符 说明&逻辑的 AND|逻辑的 OR 字符串运算符 运算符 说明=检测两个字符串是否相等,相等返回 true。!=检测两个字符串是否不相等,不相等返回 true。-z 检测字符串长度是否为 0,为 0 返回 true。-n 检测字符串长度是否不为 0,不为 0 返回 true。$检测字符串是否为空,不为空返回 true。文件测试运算符 操作符 说明-b file 检测文件是否是块设备文件,如果是,则返回 true。-c file 检测文件是否是字符设备文件,如果是,则返回 true。-d file 检测文件是否是目录,如果是,则返回 true。-f file 检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。-g file 检测文件是否设置了 SGID 位,如果是,则返回 true。-k file 检测文件是否设置了粘着位(Sticky Bit),如果是,则返回 true。10 Bash 脚本基础 Bash 脚本基础 commandN else command fi if else-if else 控制 if-else-if else 条件判断可以使用如下格式:if condition1 then command1 elif condition2 then command2 else commandN fi For 循环 for 循环可以使用如下格式:for var in item1 item2.itemN do command1 command2 .commandN done While 循环 12 Bash 脚本基础 Bash 脚本基础 如果需要进行分支处理,则可以使用如下格式:case 值 in value1)command1 command2 .commandN ;value2)command1 command2 .commandN ;esac 跳出循环 在循环过程中,如果需要跳出循环,则可以考虑使用 break 或 continue:跳出循环使用 break;跳过当前循环使用 continue。14 Bash 脚本进阶 Bash 脚本进阶 printf 支持的格式字符 说明 b 后退 c 抑制(不显示)输出结果中任何结尾的换行字符(只在%b 格式指示符控制下的参数字符串中有效),而且,任何留在参数里的字符、任何接下来的参数以及任何留在格式字符串中的字符,都被忽略 f 换页(formfeed)n 换行 r 回车(Carriage return)t 水平制表符 v 垂直制表符 一个字面上的反斜杠字符 ddd 表示 1 到 3 位数八进制值的字符。仅在格式字符串中有效 0ddd 表示 1 到 3 位的八进制值字符 2.Bash 脚本测试 借助测试参数,你可以判断 Bash 中某些语句是否符合特定的条件,比如文件是否存在、字符串长度是否为 0。测试参数可以帮助你完成更加复杂的 Bash 脚本。数值测试 参数 说明-eq 等于则为真 16 Bash 脚本进阶 Bash 脚本进阶 参数 说明-x 文件名 如果文件存在且可执行则为真-s 文件名 如果文件存在且至少有一个字符则为真-d 文件名 如果文件存在且为目录则为真-f 文件名 如果文件存在且为普通文件则为真-c 文件名 如果文件存在且为字符型特殊文件则为真-b 文件名 如果文件存在且为块特殊文件则为真 3.Bash 脚本函数 函数定义结构 function funname()action;return int;其中 function 关键词可带可不带;funcname 根据实际需要定义;return int 根据需要加入。函数参数 调用函数时传递的参数可以在函数中以$1、$2 的方式获取;使用$1 的方式获取参数仅可用于前 10 个参数,超出需要使用$n 获取;18 Bash 脚本进阶 file 将输出重定向到 file。command file 将输出以追加的方式重定向到 file。n file 将文件描述符为 n 的文件重定向到 file。n file 将文件描述符为 n 的文件以追加的方式重定向到 file。19 Bash 脚本进阶 命令 说明 n&m 将输出文件 m 和 n 合并。n&m 将输入文件 m 和 n 合并。tag 将开始标记 tag 和结束标记 tag 之间的内容作为输入。/dev/null 如果不希望看到输出,可以将输出重定向到/dev/null。5.Bash 文件包含 包含文件#写法 1.filename#注意点号(.)和文件名中间有一空格#写法 2 source filename 20 Bash 编写常用命令 file.txt 在文件尾部追加内容;echo Hello World file.txt 移除当前文件内容,并替换为新的内容。4.read read 命令是用来获取用户输入内容,即标准输入设备(键盘)输入内容。21 Bash 编写常用命令 read$variable 读入数据,并设置给变量;read-p Enter your input here:$variable 展示提示,并读入数据,设置给变量;while read line;do echo$line;done 按行读取内容,并执行命令。5.shift shift 可以用于将函数的参数移除,其他参数向前移动。shift 3 shift 后可以跟一个数字参数,表示移除相应数量的参数,其他参数向前移动。22 Bash 公共库 Bash 公共库 使用方法 从 https:/ 上下载仓库,并获取其中的 bsfl.sh 即可在自己的代码中引用。示例代码#!/usr/bin/env bash#-*-tab-width:4;encoding:utf-8-*-declare-r DIR=$(cd$(dirname$0)&pwd)source$DIR/./lib/bsfl.sh#-msg This is a classic displayed message using the msg function.echo 24 Bash 公共库 Bash 公共库 msg_emergency This is a displayed message with its status using the msg_emergency function.echo#-msg_error This is a displayed message with its status using the msg_error function.echo#-msg_failed This is a displayed message with its status using the msg_failed function.echo#-msg_info This is a displayed message with its status using the msg_info function.echo#-msg_not_ok This is a displayed message with its status using the msg_not_ok function.echo#-26 Bash 公共库 Bash 公共库 Bash Lib 是一个原子化的公共库,你可以根据自己的实际需要,引入所需的公共库分组,使用相应的内容,降低整个项目的大小。Bash Lib 提供了诸多原子库,你选择需要使用的引入即可:参数处理:arg-utils 日历处理:calendar-utils 日期处理:date-utils Hash 处理:hash-utils 帮助处理:help-util 列表处理:list-utils 交互处理:prompt-colors 文字处理:text-utils 测试处理:test-utils 时间处理:time-utils .使用方法 从 https:/ 下载仓库,并选择你需要引入的脚本,复制到项目目录下,并进行引用即可。示例代码#!/usr/bin/env bash source text-utils.sh lowercase HELLOWORLD 28 推荐阅读 推荐阅读 如何入门 Bash 编程:https:/ 编写更好 Bash 脚本的 8 个建议:https:/ Linux 中高效编写 Bash 脚本的 10 个技巧:https:/
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 研究报告 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服