linux中的break和continue

版权声明:@抛物线 https://blog.csdn.net/qq_28513801/article/details/88980909

一、break命令
break命令用于跳出循环,使用break可以跳出任何类型的循环:for、while、until。
1.跳出单循环

$ cat test.sh
#!/bin/bash
a=1
while [ $a -le 5 ]
do
if [ a e q 3 ] t h e n b r e a k f i e c h o " a = a -eq 3 ] then break fi echo "a= a"
a= [ [ a+1]
done
$ ./test.sh
a=1
a=2

2、跳出内循环

$ cat test.sh
#!/bin/bash
a=1
while [ a l e 5 ] d o e c h o " O u t e r l o o p : a = a -le 5 ] do echo "Outer loop:a= a"
a= [ [ a+1]
for val in 1 2 3 4 5
do
if [ v a l e q 3 ] t h e n b r e a k f i e c h o " I n n e r l o o p : v a l = val -eq 3 ] then break fi echo " Inner loop:val= val"
val= [ [ val+1]
done
done
$ ./test.sh
Outer loop:a=1
Inner loop:val=1
Inner loop:val=2
Outer loop:a=2
Inner loop:val=1
Inner loop:val=2
Outer loop:a=3
Inner loop:val=1
Inner loop:val=2
Outer loop:a=4
Inner loop:val=1
Inner loop:val=2
Outer loop:a=5
Inner loop:val=1
Inner loop:val=2
显然,break只跳出了内层循环。外层循环依然执行了5次

3、跳出多层循环
有时需要跳出多层循环,使用:break n,n表示要跳出的循环层数,默认情况下 n=1,代表只跳出当前循环。

$ cat test.sh
#!/bin/bash
a=1
while [ a l e 5 ] d o e c h o " O u t e r l o o p : a = a -le 5 ] do echo "Outer loop:a= a"
a= [ [ a+1]
for val in 1 2 3 4 5
do
if [ v a l e q 3 ] t h e n b r e a k 2 f i e c h o " I n n e r l o o p : v a l = val -eq 3 ] then break 2 fi echo " Inner loop:val= val"
val= [ [ val+1]
done
done
$ ./test.sh
Outer loop:a=1
Inner loop:val=1
Inner loop:val=2

二、continue命令

continue命令用于中止本次循环,重新判断循环条件,开始下一次循环。
$ cat test.sh
#!/bin/bash
a=1
for val in 1 2 3 4 5
do
if [ v a l l e 3 ] t h e n c o n t i n u e f i e c h o " v a l = val -le 3 ] then continue fi echo "val= val"
done
$ ./test.sh
val=4
val=5

猜你喜欢

转载自blog.csdn.net/qq_28513801/article/details/88980909