1. 程式人生 > >shell中的break跳出迴圈、continue結束本次迴圈、exit退出指令碼

shell中的break跳出迴圈、continue結束本次迴圈、exit退出指令碼

開發十年,就只剩下這套架構體系了! >>>   

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直接就退出了指令碼,不會再執行任何的指令碼中的