我是靠谱客的博主 单纯大地,最近开发中收集的这篇文章主要介绍shell脚本:跳出循环break与continue,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

    • 跳出循环
    • 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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部