bash shell 跳出循环 : break or continue :


 

        此链接通往 Bash Shell 编程学习的目录导航 ,从入门到放弃,感兴趣的可以去看看:


break 跳出整个循环!

root@zhengzelin:~# cat test.sh 
#!/bin/bash

for i in $(seq 1 10)
do
   if [[ $i -eq 6 ]];then
   echo " 此次为 break"
   break
   fi
echo $i   
done

root@zhengzelin:~# ./while1.sh 
1
2
3
4
5
此次为 break

continue 跳出当前循环

root@zhengzelin:~# cat test.sh 
#!/bin/bash
for i in $(seq 1 10)
do
   if [[ $i -eq 6 ]];then
   echo " continue 跳过 6"
   continue
   fi
echo $i   
done

root@zhengzelin:~# ./while1.sh 
1
2
3
4
5
continue 跳过 6
7
8
9
10

注意:

1.break的适用范围:

只能用于switch或者是循环语句中。

2.break的作用:

(1)break用于switch语句中的作用是结束一个switch语句。

(2)break用于循环语句中的作用是结束当前所在的循环语句。



1.continue的适用范围:

continue只能用于循环语句。

2.continue要注意的事项:

(1)在一种情况下(顺序执行),continue后面不能跟有其他语句,因为是永远都无法执行到的(同理 break 也是如此)

eg:

root@zhengzelin:~# cat while1.sh 
#!/bin/bash
for i in $(seq 1 5)
do
   if [[ $i -eq 3 ]];then
   continue
   echo " 此次为 continue"
   fi
echo $i   
done

root@zhengzelin:~# ./while1.sh 
1
2
4
5

# continue 后面的语句没有执行;同理 break 也一样:

root@zhengzelin:~# cat while1.sh 
#!/bin/bash
for i in $(seq 1 5)
do
   if [[ $i -eq 3 ]];then
   break
   echo " 此次为break"
   fi
echo $i   
done
root@zhengzelin:~# ./while1.sh 
1
2

关于 while 循环中 使用 continue:

root@zhengzelin:~# i=0;while [[ $i -le 5 ]];do if [[ $i -eq 3 ]];then continue;fi;echo $i;let i++;done;unset a
0
1
2
^C
root@zhengzelin:~# i=0;while [[ $i -le 5 ]];do let i++;if [[ $i -eq 3 ]];then continue;fi;echo $i;done;unset a
1
2
4
5
6

注意 i++ 的位置!
发布了99 篇原创文章 · 获赞 72 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/ljlfather/article/details/105351588
今日推荐