linux脚本怎么循环和退出,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前面的代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值