Shell基础学习 流程控制
Posted 会学习的猪
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell基础学习 流程控制相关的知识,希望对你有一定的参考价值。
1、if
if的语法格式
if conditon then command1 command2 ``` commandn fi
2、if else
if conditon then command1 command2 ``` commandn else command1 command2 ``` commandn fi
3、if elseif else
if conditon then command1 command2 ``` commandn else if conditon command1 command2 ``` commandn else command1 command2 ``` commandn fi
4、for循环
for(var in item1 item2 item3) do command1 command2 ``` commandn done
5、while
while condition do command1 command2 ``` commandn done
6、until
until循环执行一系列命令直至条件为真时停止。
until condition do command done
7、case
Shell case语句为多选择语句。可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。case语句格式如下:
case 值 in 模式1) command1 command2 ... commandN ;; 模式2) command1 command2 ... commandN ;; esac
8、break
break命令允许跳出所有循环(终止执行后面的所有循环)。
下面的例子中,脚本进入死循环直至用户输入数字大于5。要跳出这个循环,返回到shell提示符下,需要使用break命令。
#!/bin/bash while : do echo -n "输入 1 到 5 之间的数字:" read aNum case $aNum in 1|2|3|4|5) echo "你输入的数字为 $aNum!" ;; *) echo "你输入的数字不是 1 到 5 之间的! 游戏结束" break ;; esac done
结果: 输入 1 到 5 之间的数字:
3 你输入的数字为 3!
输入 1 到 5 之间的数字:7
你输入的数字不是 1 到 5 之间的! 游戏结束
9、continue
continue命令与break命令类似,只有一点差别,它不会跳出所有循环,仅仅跳出当前循环。
对上面的例子进行修改:
#!/bin/bash while : do echo -n "输入 1 到 5 之间的数字: " read aNum case $aNum in 1|2|3|4|5) echo "你输入的数字为 $aNum!" ;; *) echo "你输入的数字不是 1 到 5 之间的!" continue echo "游戏结束" ;; esac done
运行代码发现,当输入大于5的数字时,该例中的循环不会结束,语句 echo "游戏结束" 永远不会被执行。
以上是关于Shell基础学习 流程控制的主要内容,如果未能解决你的问题,请参考以下文章