break跳出循环
- 实例:
#! /bin/bashfor i in `seq 1 5`do echo $i if [ $i == 3 ] then break fi echo $idoneecho aaaaaaaaa
- 输出执行结果:
[root@test01 jiaoben]# sh -x break1.sh ++ seq 1 5+ for i in '`seq 1 5`'+ echo 11+ '[' 1 == 3 ']'+ echo 11+ for i in '`seq 1 5`'+ echo 22+ '[' 2 == 3 ']'+ echo 22+ for i in '`seq 1 5`'+ echo 33+ '[' 3 == 3 ']'+ break+ echo aaaaaaaaaaaaaa
- 从输出结果可以看到,当判断条件成立后,break,循环到此结束,不会再给它赋值,跳出循环,但是没有退出脚本,break后面的脚本内容依然会执行。
continue结束本次循环
-
忽略continue之下的代码,直接进行下一次循环
#!/bin/bash for i in `seq 1 5` do echo $i if [ $i == 3 ] then continue fi echo $i:不等于3 done echo continue脚本执行结果
- 输出结果:
[root@test01 jiaoben]# sh continue.sh 11:不等于322:不等于3344:不等于355:不等于3continue脚本执行结果
- 从输出结果可以看到,当判断条件满足后,continue会跳过下面的代码,直接进行新的赋值,执行上面的循环。
exit退出脚本
- 案例:
#!/bin/bashfor i in `seq 1 5`do echo $i if [ $i == 3 ] then exit fi echo $idoneecho aaaaaaa
- 输出结果为:
[root@test01 jiaoben]# sh -x exit.sh ++ seq 1 5+ for i in '`seq 1 5`'+ echo 11+ '[' 1 == 3 ']'+ echo 11+ for i in '`seq 1 5`'+ echo 22+ '[' 2 == 3 ']'+ echo 22+ for i in '`seq 1 5`'+ echo 33+ '[' 3 == 3 ']'+ exit
- 从输出结果看出,当循环满足了判定条件后,exit直接就退出了脚本,不会再运行任何的脚本中的指令。