概述
文章目录
- 跳出循环
- Break
- break使用案例
- continue
- continue使用案例
- break和continue异同
跳出循环
跳出循环用于未达到循环结束条件就跳出循环,也就是循环退出,非正常退出循环。
其实准确来说,跳出循环的命令有三个,break,continue和return,为什么不说这个return呢,这个命令只用于在函数中跳出循环,在普通定义的脚本中使用会产生报错,所以没有将其列出来,所以我把他放到函数中说了。
有没有这种疑问,这个跳出循环命令和exit有什么区别吗?如果只是单个循环语句的话,差别是不大,但当脚本内容中,有其他脚本时,使用exit将会直接退出脚本,而跳出循环命令只是跳出循环语句,不影响执行其他命令操作。
Break
在for与while循环语句中,用于跳出当前循环,若有多个循环语句嵌套,则可以用break 数字(数字取决于你嵌套循环的数量),即可退出嵌套循环。
break使用案例
例如:创建一个while的嵌套循环,用于测试
#!/bin/bash
echo "开始数都为1,若num小于6,nu小于5,循环加1"
num=1
nu=1
while [ $num -lt 6 ]
do
while [ $nu -lt 5 ]
do
let nu++
echo "nu的数为$nu"
done
let num++
echo "num的数为$num"
done
执行效果:
[root@linus ~]# sh break.sh
开始数都为1,若num小于6,nu小于5,循环加1
nu的数为2
nu的数为3
nu的数为4
nu的数为5
num的数为2
num的数为3
num的数为4
num的数为5
num的数为6
然后我们将break加入到里面
#!/bin/bash
echo "开始数都为1,若num小于6,nu小于5,循环加1"
num=1
nu=1
while [ $num -lt 6 ]
do
while [ $nu -lt 5 ]
do
break #后面没加上跳出几次循环,所以默认只跳过一次
let nu++
echo "nu的数为$nu"
done
let num++
echo "num的数为$num"
done
执行效果:
[root@linus ~]# sh break.sh
开始数都为1,若num小于6,nu小于5,循环加1
num的数为2
num的数为3
num的数为4
num的数为5
num的数为6
直接将nu值加1的循环给跳过了,因为只跳过一次,所以num循环依然可以执行。
接下来,我们在break后面加上2,跳出两次循环
#!/bin/bash
echo "开始数都为1,若num小于6,nu小于5,循环加1"
num=1
nu=1
while [ $num -lt 6 ]
do
while [ $nu -lt 5 ]
do
break 2 #这次是跳出两次循环
let nu++
echo "nu的数为$nu"
done
let num++
echo "num的数为$num"
done
执行效果:
[root@linus ~]# sh break.sh
开始数都为1,若num小于6,nu小于5,循环加1
循环全部退出了,只剩下第一行的echo输出。
continue
continue也是跳过循环,只是它会省略continue后面的剩余代码,进行下一次循环。用于跳过不需要的命令,只执行前半部分。continue也可以加上数字,用于跳过(嵌套循环),不过很少用到,感兴趣可以自行尝试。
continue使用案例
创建while测试脚本
脚本:
#!/bin/bash
echo "num是1,若num小于6,num++"
num=1
while [ $num -lt 6 ]
do
let num++
echo "num的数为$num"
echo "循环结束"
done
执行效果:
[root@linus ~]# sh continue.sh
num是1,若num小于6,num++
num的数为2
循环结束
num的数为3
循环结束
num的数为4
循环结束
num的数为5
循环结束
num的数为6
循环结束
加上continue,看看跳过的效果。
#!/bin/bash
echo "num是1,若num小于6,num++"
num=1
while [ $num -lt 6 ]
do
let num++
echo "num的数为$num"
continue #加上continue跳过循环
echo "循环结束"
done
执行效果:
[root@linus ~]# sh continue.sh
num是1,若num小于6,num++
num的数为2
num的数为3
num的数为4
num的数为5
num的数为6
continue后面的循环命令没有执行,但是前面的循环命令正常。
break和continue异同
相同点:也就是都可以跳过循环
不同点:
break 用来直接结束当前循环,代码执行到break直接退出。
continue 用来结束本次循环,忽略continue的后续代码,直接跳到下一次循环,如果循环条件成立,还会继续循环,但只循环contunue前面的代码。
最后
以上就是单纯大地为你收集整理的shell脚本:跳出循环break与continue的全部内容,希望文章能够帮你解决shell脚本:跳出循环break与continue所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复