SHELL脚本编程循环篇-while循环
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.while循环的语法格式
while CONDITION; do 循环体 done 以上参数关键点说明: CONDITION: 循环控制条件,进入循环之前,先做一次判断;每一次循环之后会再次做判断;条件为“true”,则执行一次循环;直到条件测试状态为“false”终止循环。因此,CONDTION一般应该有循环控制变量;而此变量的值会在循环体不断地被修正 进入条件: CONDITION为true 退出条件: CONDITION为false 其实也可以写成一行: [root@node101.yinzhengjie.org.cn ~]# i=1;while [ $i -le 100 ];do let sum+=i;let i++;done;echo sum=$sum sum=5050 [root@node101.yinzhengjie.org.cn ~]#
二.循环控制语句continue
while CONDTIITON1; do CMD1 ... if CONDITION2; then continue fi CMDn ... done 使用场景: 用于循环体中,continue [N]:提前结束第N层的本轮循环,而直接进入下一轮判断;最内层为第1层
[root@node101.yinzhengjie.org.cn ~]# cat shell/continue.sh #!/bin/bash # #******************************************************************** #Author: yinzhengjie #QQ: 1053419035 #Date: 2019-11-25 #FileName: shell/continue.sh #URL: http://www.cnblogs.com/yinzhengjie #Description: The test script #Copyright notice: original works, no reprint! Otherwise, legal liability will be investigated. #******************************************************************** flag=true i=0 while [ $i -lt 10 ];do let i++ #如果"$i"的值为7,则跳过本次循环进行下一次循环 if [ $i -eq 7 ];then continue fi echo $i done [root@node101.yinzhengjie.org.cn ~]# [root@node101.yinzhengjie.org.cn ~]# bash shell/continue.sh 1 2 3 4 5 6 8 9 10 [root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# cat shell/continue.sh #!/bin/bash # #******************************************************************** #Author: yinzhengjie #QQ: 1053419035 #Date: 2019-11-25 #FileName: shell/continue.sh #URL: http://www.cnblogs.com/yinzhengjie #Description: The test script #Copyright notice: original works, no reprint! Otherwise, legal liability will be investigated. #******************************************************************** flag=true i=0 while [ $i -lt 3 ];do let i++ for((j=1;j<=10;j++));do if [ $j -eq 7 ];then #退出到本层循环的上一轮循环 continue 2 fi echo j=$j done echo i=$i done [root@node101.yinzhengjie.org.cn ~]# [root@node101.yinzhengjie.org.cn ~]# bash shell/continue.sh j=1 j=2 j=3 j=4 j=5 j=6 j=1 j=2 j=3 j=4 j=5 j=6 j=1 j=2 j=3 j=4 j=5 j=6 [root@node101.yinzhengjie.org.cn ~]#