shell中的break跳出迴圈、continue結束本次迴圈、exit退出指令碼
阿新 • • 發佈:2019-04-09
break跳出迴圈
- 例項:
#! /bin/bash for i in `seq 1 5` do echo $i if [ $i == 3 ] then break fi echo $i done echo aaaaaaaaa
- 輸出執行結果:
[root@test01 jiaoben]# sh -x break1.sh ++ seq 1 5 + for i in '`seq 1 5`' + echo 1 1 + '[' 1 == 3 ']' + echo 1 1 + for i in '`seq 1 5`' + echo 2 2 + '[' 2 == 3 ']' + echo 2 2 + for i in '`seq 1 5`' + echo 3 3 + '[' 3 == 3 ']' + break + echo aaaaaaa aaaaaaa
- 從輸出結果可以看到,當判斷條件成立後,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 1 1:不等於3 2 2:不等於3 3 4 4:不等於3 5 5:不等於3 continue指令碼執行結果
- 從輸出結果可以看到,當判斷條件滿足後,continue會跳過下面的程式碼,直接進行新的賦值,執行上面的迴圈。
exit退出指令碼
- 案例:
#!/bin/bash for i in `seq 1 5` do echo $i if [ $i == 3 ] then exit fi echo $i done echo aaaaaaa
- 輸出結果為:
[root@test01 jiaoben]# sh -x exit.sh ++ seq 1 5 + for i in '`seq 1 5`' + echo 1 1 + '[' 1 == 3 ']' + echo 1 1 + for i in '`seq 1 5`' + echo 2 2 + '[' 2 == 3 ']' + echo 2 2 + for i in '`seq 1 5`' + echo 3 3 + '[' 3 == 3 ']' + exit
- 從輸出結果看出,當迴圈滿足了判定條件後,exit直接就退出了指令碼,不會再執行任何的指令碼中的