shell脚本中的流程控制

  Shell中的流程控制与其他语言稍稍不同,主要是不能为空,主要有以下几种:

1、简单跳转

if

语法如下:
if condition
then
    command1 
    command2
    ...
    commandN 
fi

if  else

语法如下:
if condition
then
    command1 
    command2
    ...
    commandN
else
    command
fi

if else-if else

语法如下
if
condition1 then command1 elif condition2 then command2 else commandN fi

if else 语句经常与 test 命令结合使用

 1 #!/usr/bin/bash                                                                                                                      
 2 num1=$13 num2=$24 if test $[num1] -eq $[num2]
 5 then
 6     echo "${num1} 和 ${num2} 相等!"
 7 else
 8     echo "${num1} 和 ${num2} 不相等!"
 9 fi 

测试:

$  sh testIfEqu.sh 3 4
34 不相等!

2、for循环

for var in item1 item2 ... itemN
do
    command1
    command2
    ...
    commandN
done

3、while循环

while condition
do
    command
done

无限循环:

while :
do
    command
done
while true
do
    command
done
for (( ; ; ))

4、until循环,until 循环执行一系列命令直至条件为 true 时停止;until 循环与 while 循环在处理方式上刚好相反;一般 while 循环优于 until 循环,但在某些时候—也只是极少数情况下,until 循环更加有用

until condition
do
    command
done

5、case ... esac选择

casein
模式1)
    command1
    command2
    ...
    commandN
    ;;
模式2)
    command1
    command2
    ...
    commandN
    ;;
esac

6、循环的跳出break和continue和其他语言一样

 1 #!/usr/bin/bash
 2 while :
 3 do
 4     echo -n "输入 1 到 5 之间的数字:"
 5     read aNum
 6     case $aNum in
 7         1|2|3|4|5) echo "你输入的数字为 $aNum!"
 8         ;;
 9         *) echo "你输入的数字不是 1 到 5 之间的! 游戏结束"
10             break
11         ;;
12     esac
13 done 
 1 #!/usr/bin/bash                                                          
 2 while :
 3 do
 4     echo -n "输入 1 到 5 之间的数字: "
 5     read aNum
 6     case $aNum in
 7         1|2|3|4|5) echo "你输入的数字为 $aNum!"
 8         ;;
 9         *) echo "你输入的数字不是 1 到 5 之间的!"
10             continue
11             echo "游戏结束"
12         ;;
13     esac
14 done 
~         
人就像是被蒙着眼推磨的驴子,生活就像一条鞭子;当鞭子抽到你背上时,你就只能一直往前走,虽然连你也不知道要走到什么时候为止,便一直这么坚持着。
原文地址:https://www.cnblogs.com/guochaoxxl/p/15261351.html