Shell编程八(流程控制)

Shell 流程控制

一、if else

  1、只有if 没有else


if condition
then
command1
command2
...
commandN
fi

2、if else格式

if condition
then
command1
command2
...
commandN
else
command
fi

3、if else-if else 语法格式:

if condition1
then
command1
elif condition2
then
command2
else
commandN
fi

5、示例

 

 

 

 

 

二、for 循环

基本格式:

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

当变量值在列表里,for循环即执行一次所有命令,使用变量名获取列表中的当前取值。命令可为任何有效的shell命令和语句。in列表可以包含替换、字符串和文件名。

in列表是可选的,如果不用它,for循环使用命令行的位置参数。

 

 

 

三、while 语句

while循环用于不断执行一系列命令,也用于从输入文件中读取数据;命令通常为测试条件。其格式为:

while condition
do
    command
done

示例1:

 


    Let命令的使用:https://www.runoob.com/linux/linux-comm-let.html

 示例2:

 

 

 示例3:

 

 

 无限循环:

 

 

 

四、until 循环

until 循环执行一系列命令直至条件为 true 时停止。

until 循环与 while 循环在处理方式上刚好相反。

until 语法格式:

until condition
do
    command
done

示例:

五、case

Shell case语句为多选择语句。可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。case语句格式如下:
case  in
模式1)
    command1
    command2
    ...
    commandN
    ;;
模式2
    command1
    command2
    ...
    commandN
    ;;
esac

示例:

 

 

 

六、跳出循环:break和continue

1、break:break命令允许跳出所有循环(终止执行后面的所有循环)。

 

 

 

2、continue

       continue命令与break命令类似,只有一点差别,它不会跳出所有循环,仅仅跳出当前循环。


运行代码发现,当输入大于5的数字时,该例中的循环不会结束,语句 echo "游戏结束" 永远不会被执行。

 

 3、case ... esac

case ... esac 与其他语言中的 switch ... case 语句类似,是一种多分枝选择结构,每个 case 分支用右圆括号开始,
用两个分号 ;; 表示 break,即执行结束,跳出整个 case ... esac 语句,esac(就是 case 反过来)作为结束标记。
case  in
模式1)
    command1
    command2
    command3
    ;;
模式2
    command1
    command2
    command3
    ;;
*)
    command1
    command2
    command3
    ;;
esac

 

 

 
posted @ 2021-01-12 17:17  水绿冰蓝  阅读(62)  评论(0)    收藏  举报