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之下的代碼,直接進行下一次循環bash

    #!/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直接就退出了腳本,不會再運行任何的腳本中的指令。 
相關文章
相關標籤/搜索