read -p “注释”:变量 该语句可以使得在屏幕上输出注释,同时让用户交互的输入数据,并对语句指定的变量进行赋值。
if语句
if [ 条件表达式 ]
then
command1
elif [ 条件表达式 ] #其中elif表示else if的意思
then
else
command2
fi
当我们使用systemctl查看服务的开启状态的时候,若服务开启则变量?的值为0,若服务关闭,则变量?的值不为0.
case分支语句
case 字符串 in
字符串1) //每个匹配模式的右边都要加上一个”)“
commmand1
;; //两个分号代表该匹配模式的结尾
字符串2)
command2
;;
*) //代表若上述的所有都不匹配,则使用该匹配模式
command3
esac
case 字符串 in
字符串1|字符串2|字符串3.....字符串n)
command1
;;
*)
command2
esac
上面这种表达形式表示匹配多个字符串之后执行command1,匹配其他的执行最后一个
其实case分支语句的主要用法,通过比对字符串,来决定命令的执行
for循环
for 变量名 in 取值列表
do
command1,2,3.。。。。
done
取值列表的表现形式:
(1) {1..5}:代表取值从取1到5
(2) {1,2,3,4}代表从1234中进行取值
(3) $(seq 参数1,参数2,参数3):使用$(命令)的格式将seq的执行结果作为取值列表
用法:seq [选项]... 尾数 :比如echo $(seq 10),那么输出的结果就是1到10
或:seq [选项]... 首数 尾数 :比如echo $(seq 2 10)那么输出的结果就是2到10
或:seq [选项]... 首数 增量 尾数 :比如echo $(seq 1 2 10),那么输出的结果就是1,3,5,7,9
(4) $(ls path):将ls某目录的结果作为取值列表,由此可以对某目录中名字无规律的文件进行操作。
while循环
while 条件表达式
do
command1,2.。。。
done
while read line //对某个文件的每一行进行读取,并使用命令进行处理
do
每一行的内容可用$line进行表示
command1,2.。。。
done < 指定文件
cut命令(文本分割工具)
-d 'xx' -f1 :指定分隔符为xx,相当于是批处理中的delims指定分割符号。其中-f1表示我要取出以xx为分隔符的第一块内容。
-c 1-2:提取第一到第二的字符
-c -2:提取前两个字符
-c 5-:提取末尾五个字符
循环控制语句
break:跳出当前循环体
continue:跳出本次循环,且循环后面的语句忽略
其他语句
sleep number :这个sleep语句跟上对应的数字之后就可以使得该脚本按照指定数字休眠对应的秒数
shift:使用该命令之后,脚本后面跟上的参数,就往左移一位
比如脚本后面跟上的参数是1,2,3,脚本中对应的接收变量为$1,$2,$3
则在执行shift命令之后,$1对应的参数就变为2,$2的对应参数就变为3,$3就没有对应的参数了
exit:退出脚本程序,执行该命令,代表是非正常退出,则我们输出变量?的时候,其值就不为0
exit number:非正常退出程序,同时还指定变量?的值,我们可以在某些程序端上写上该语句,同时exit后面的number与对应的行数挂钩,这样我们就可以直到exit退出的时候,执行到了哪一句。