Shell脚本编程之流程控制

Shell脚本编程之流程控制

2023年8月2日发(作者:)

Shell脚本编程之流程控制1.和Java、PHP等语⾔不⼀样,sh的流程控制不可为空,如(以下为PHP流程控制写法):在sh/bash⾥可不能这么写,如果else分⽀没有语句执⾏,就不要写这个else。

#if 语句语法格式::<

else:#if else 语句语法格式::<

else-if else:#if else-if else语句语法格式::<

循环:#for 循环⼀般格式为::<令可为任何有效的shell命令和语句。in列表可以包含替换、字符串和⽂件名。for循环实例:

for loop in 1 2 3 4 5do echo "The value is:$loop"donefor str in "This is a string"do echo $strdone运⾏结果:

语句:while循环⽤于不断执⾏⼀系列命令,也⽤于从输⼊⽂件中读取数据;命令通常为测试条件#while 语句其格式为::<

循环可⽤于读取键盘信息,实例:

#while循环可⽤于读取键盘信息echo "按下 退出"echo -n "输⼊你最喜欢的⽹站名:"while read FILMdo echo "是的!$FILM 是⼀个好⽹站"done

运⾏结果:

8.⽆限循环:#⽆限循环语法格式::<

do commanddone或者while truedo commanddone或者for (( ; ;))

循环:until循环执⾏⼀系列命令直⾄条件为真时停⽌;⼀般while循环优于until循环,但在某些时候—也只是极少数情况下,until循环更加有⽤#until 语法格式::<

:Shell case语句为多选择语句。可以⽤case语句匹配⼀个值与⼀个模式,如果匹配成功,执⾏相匹配的命令#case 语句格式如下::<

****取值将检测匹配的每⼀个模式,⼀旦模式匹配成功,则执⾏完匹配模式相应命令后不再继续其他模式,如果⽆⼀匹配模式,使⽤星号*捕获该值,再执⾏后⾯的命令

****case的语法和C family语⾔差别很⼤,它需要⼀个esac(就是case反过来)作为结束标记,每个case分⽀⽤右圆括号,⽤两个分号表⽰break。case实例:echo "输⼊ 1 到 4 之间的数字:"echo "你输⼊的数字为:'"read aNumcase $aNum in 1) echo "你选择了 1" ;; 2) echo "你选择了 2" ;; 3) echo "你选择了 3" ;; 4) echo "你选择了 4" ;; *) echo "你没有输⼊ 1 到 4 之间的数字" ;;esac

运⾏结果:

11.跳出循环:在循环过程中,有时候需要在未达到循环结束条件时强制跳出循环,Shell使⽤两个命令来实现该功能:break和continue。(1)break命令:break命令允许跳出所有循环(终⽌执⾏后⾯的所有循环)while :do echo -n "输⼊ 1 到 5 之间的数字:" read aNum case $aNum in 1|2|3|4|5) echo "你输⼊的数字为 $aNum!" ;; *) echo "你输⼊的数字不是 1 到 5 之间的! 游戏结束" break ;; esacdone

运⾏结果:

(2)continue:continue命令与break命令类似,只有⼀点差别,它不会跳出所有循环,仅仅跳出当前循环while :do echo -n "输⼊ 1 到 5 之间的数字: " read aNUm case $aNum in 1|2|3|4|5) echo "你输⼊的数字为 $aNum!" ;; *) echo "你输⼊的数字不是 1 到 5 之间的!" continue echo "游戏结束" ;; esacdone

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

发布者:admin,转转请注明出处:http://www.yc00.com/web/1690920150a463715.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信