12_Shell流程控制
一、if-else语句
if
if 条件
then
命令
fi
if-else
if 条件
then
命令
else
命令
fi
if-elseif
if 条件1
then
命令1
elif 条件2
then
命令2
elif 条件3
then
命令3
...
elif 条件n
then
命令n
else
命令
fi
二、case语句
case 值 in
匹配模式1)
命令1
命令2
...
;;
匹配模式2)
命令1
命令2
...
;;
*)
命令1
命令2
...
;;
esac
匹配模式支持类型
格式 | 说明 |
---|---|
* | 任意字符串,类似java case中的default |
[abc] | 匹配 a、b、c字符中的任意一个 |
[m-n]/[0-9] | 匹配m到n的任意一个字符,或者匹配0到9的任意一个数字 |
abc|xyz | 匹配abc或者xyz字符串任意一个 |
三、while语句
while 条件
do
命令1
命令2
...
continue; 结束此次循环直接开始下次循环
break; 结束当前循环
done
四、until语句
until与while正好相反,until为false则继续执行循环,为true则退出循环
until 条件
do
命令
done
五、for语句
语法一:适用于枚举值不是很多的情况
for var in enum1 enum2 ... enum3
do
命令1
命令2
done
语法二:
for var in {start..end}
do
命令1
命令2
done
#注意:
start:循环起始值,必须为整数
end:循环结束值,必须为整数
语法三:
for ((i=start; i<=end; i++))
do
命令1
命令2
done
#注意:
start:循环起始值,必须为整数
end:循环结束值,必须为整数
无线循环:
for ((;;))
do
命令1
命令2
done