(五)Shell控制流程
五、流程控制
1. if
if [ 条件 ]
then
程序
elif [ 条件 ]
then
程序
fi
- if后要有空格
- 中括号和条件判断式之间必须有空格
案例实操
输入一个数字,如果是1,则输出“I love cat”,如果是2则输出“I love dog”,如果是其他,则输出“I love animal”
2.case
取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。
如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令。
case 值 in
模式1)
程序
;;
模式2)
程序
;;
*)
程序
;;
esac
- 取值后面必须为单词
in
, 每一模式必须以右括号结束。- 双分号
;;
相当于java中的break- 最后的
*)
,相当于default
案例实操
case $1 in
1)
echo "I love cat"
;;
2)
echo "I love puppy"
;;
*)
echo "I love everything"
;;
esac
3. for
语法一:for..in
for var in item1 item2...itemN
do
程序
done
或是:
for var in item1 item2...itemN; do 程序1; 程序 done;
案例实操
#!/bin/bash
for val in 1 2 3 4 5
do
echo "the value is: $val"
done
语法二: for(())
for((初始值;循环控制条件;变量变化))
do
程序
done
案例实操
for(( i=1;i<=100;i++ ))
do
s=$[$s+$i]
done
echo "sum = $s"
4. while
while [ 条件表达式 ]
do
程序
done
while后要有空格
[]和表达式之间要有空格
案例实操
#!/bin/bash
s=0
i=0
while [ $i -le 100 ]
do
s=$[$s + $i]
i=$[$i + 1]
done
echo $s