shell之流程控制语句
1.if语句
1.1 单分支if条件语句
if [ 条件判断式 ];then
程序
fi
或者
if [ 条件判断式 ]
then
程序
fi
单分支条件语句需要注意
1.if语句使用fi结尾,和一般语言使用大括号结尾不同。
2.[ 条件判断式 ] 就是使用test命令判断,所以中括号和条件判断式之间必须要有空格。
3.then后面跟符合条件之后执行的程序放在[]之后,用“;”分割,也可以换行写入,就不需要";"。
1.2 双分支if语句
if [ 条件判断式 ]
then
条件成立时,执行的程序
else
条件不成立,执行的另一个程序
fi
1.3 多分支语句
if <条件表达式1>
then
指令1
elif<条件表达式2>
then
指令2
else
指令3
fi
1.4 多重条件判断
条件表达式1 选项 条件表达式2
选项:
-a:并且
-o :或者
! 条件表达式 :取反,非
if [ $username = "root" ] -a [ $password = "redhat" ]
if [ $username = "root" ] && [ $password = "redhat" ]
if [[ $username = "root" && $password = "redhat" ]]
2.case语句
case语句和if…elif…else语句一样都是多分支语句,不过和if多分支条件语句不同的是,case语句只能判断一种条件关系,而if语句可以判断多种条件关系。
case $变量名 in
"值1")
如果变量的值等于1,则执行程序1
;;
"值2")
如果变量的值等于值2,则执行程序2
;;
...省略其他分支
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
3.for循环
for 变量 in 变量取值列表
do
程序
done
seq 1 2 10 #打印奇数 起始位置 步长 结束位置
scripts]# seq 2 2 10 #打印偶数
seq 5 10 #打印5到10
seq -w 10 #等宽显示
4.while循环
while循环是不定循环,也称作条件循环,只要条件判断成立,循环就会一直继续,直到条件判断式不成立,循环才会停止。这和for的固定循环不太一样。
应用场景:while循环语句主要用来重复执行一组命令或语句,在企业实际应用中,常用于守护进程或持续运行的程序
while [ 条件判断式 ]
do
程序
done
5.until循环
until循环,和while循环相反,until循环时只要条件判断式不成立则进行循环,并执行循环程序。一旦循环条件成立,则终止循环。
until [条件判断式]
do
程序
done
6.select循环
select 变量名 in 菜单取值列表
do
程序
done
select 循环主要用于创建菜单,按数字顺序排列的菜单项将显示在标准错误上,并显示PS3 提示符,等待用户输入
用户输入菜单列表中的某个数字,执行相应的命令。
用户输入被保存在内置变量REPLY 中。
select 是个无限循环,因此要记住用break 命令退出循环,或用exit 命令终止脚本。也可以按ctrl+c 退出循环。
select 经常和case 联合使用。
与for 循环类似,可以省略in list ,此时使用位置参量。