循环-for
For i in 1 2 3;do echo $i;done
for var in item1 item2 ... itemN
do
command1
command2
...
commandN
done
案例1:
for loop in 1 2 3 4 5
do
echo "The value is: $loop"
done
案例2:(循环创建文件)
for i in `seq 1 3 ` ; do touch $i.log ; done
循环- while
while condition
do
command
done
案例:(注意表达式一定要用双括号)
i=1
while (( $i < 5))
do
echo $i
#i=`expr $i + 1 `
#如下是let命令
let "i++"
Done
While((true))
While :
循环 - Until
Until [ $# -gt 0 ]
Do
Command1
Shift;;
Done
匹配 - case
必须有in,一个模式结束必须用双;;号,esac(case的反转)是case结束标识
case 值 in
模式1)
command1
command2
...
commandN
;;
模式2)
command1
command2
...
commandN
;;
esac
同时也支持continue(跳出当前)和break(跳出所有循环)跳出循环。
while :
do
echo -n "输入 1 到 5 之间的数字: "
read aNum
case $aNum in
1|2|3|4|5)
echo "你输入的数字为 $aNum!"
break
;;
*)
echo "你输入的数字不是 1 到 5 之间的!"
continue
;;
esac
done