Shell 流程控制
if else
if语句格式:
if condition
then
command1
command2
...
commandN
fi
if else语句格式
if condition
then
command1
command2
...
commandN
else
command
fi
实例:
#!/bin/bash
a=20
b=30
if [ $a == $b ]
then
echo "a等于b"
elif [ $a -lt $b ]
then
echo "a小于b"
elif [ $a -gt $b ]
then
echo "a大于b"
else
echo "没有符合的条件"
fi
运行结果:
if语句常与test合用:
#!/bin/bash
mytijian=$[3*3]
hywang=$[6+3]
if test $[mytijian] -eq $[hywang]
then
echo "两个数字相等"
else
echo "两个数字不相等"
fi
运行结果:
for循环
for循环的一般格式:
for var in item1 item2 ... itemN
do
command1
command2
...
commandN
done
写成一行:
for var in item1 item2 ...itemN;do command1;command2 ...commandN;done
实例:
#!/bin/bash
for mytijianloop in 1 2 3 4 5
do
echo "The value of mytijianloop: $mytijianloop"
done
运行结果:
while语句
while的一般格式:
while condition
do
command
done
实例:
#!/bin/bash
mytijian=1
while (( $mytijian<=5 ))
do
echo $mytijian
let "mytijian++"
done
运行结果:
注:
while循环可用于读取键盘信息。
#!/bin/bash
echo "按下<CTRL-D>退出"
echo -n "输入mytijian:"
while read mytijian
do
echo "$mytijian"
done
输入mytijian的值后,回车显示刚刚输入的值,按下CTRL+D退出
运行结果:
until循环
until循环的一般格式:
until condition
do
command
done
case
case语句一般格式如下:
case 值 in
模式1)
command1
command2
;;
模式2)
command3
command4
;;
esac
实例:
#!/bin/bash
echo "输入1到4之间的数字:"
read aNum
case $aNum in
1)
echo "你输入了1"
;;
2)
echo "你输入了2"
;;
3)
echo "你输入了3"
;;
4)
echo "你输入了4"
;;
*)
echo "你输入的数字不符合条件"
;;
esac
运行结果:
跳出循环
break
break命令允许跳出所有循环(终止执行后面的所有循环)
实例:
#!/bin/bash
while :
do
echo -n "输入1至5的数字:"
read num
case $num in
1|2|3|4|5)
echo "你输入的数字为: $num!"
;;
*)
echo "你输入的数字不是1至5之间的数字"
break
;;
esac
done
这个例子是让用户一直输入一个1到5的数字,知道输入不在1至5之间的数字,跳出整个循环
运行结果:
continue
continue只是跳出当前循环
实例:
#!/bin/bash
while :
do
echo -n "输入1到5之间的数字:"
read num
case $num in
1|2|3|4|5)
echo "你输入的数字为: $num!"
;;
*)
echo "你输入的输在不在1到5之间"
continue
echo "Game Over"
;;
esac
done
运行结果:
echo “Game Over”永远不会执行