Shell 循環控制break/continue

到目前爲止,我們已經看到了,創建循環和使用循環來完成不同的任務。有時候,你需要停止循環或跳過循環迭代。

在本教程中,您將瞭解以下兩個語句用於控制 Shell 循環:

  1. break 語句

  2. continue 語句

無限循環:

循環有限的生命,他們跳出來,一旦條件是 false 還是 false 取決於循環。

由於所需的條件是不符合一個循環可能永遠持續下去。永遠不會終止執行一個循環執行無限次數。出於這個原因,這樣的循環被稱爲無限循環。

例子:

下面是一個簡單的例子,使用while循環顯示數字0到9:

#!/bin/sh a=10 while [ $a -lt 10 ] do echo $a
a=`expr $a + 1` done

這個循環將永遠持續下去,因爲常是大於10,它永遠不會成爲小於10。所以這是無限循環真實的例子。

break語句:

break語句用於終止整個循環的執行,完成後所有行代碼break語句的執行。然後,它逐級的代碼跟在循環結束。

語法

將用於以下break語句退出循環:

break

將用於以下break語句退出循環:

break n

這裏n指定的第n個封閉的循環退出。

例子:

下面是一個簡單的例子展示了循環將終止只要一變爲5:

#!/bin/sh a=0 while [ $a -lt 10 ] do echo $a if [ $a -eq 5 ] then break fi a=`expr $a + 1` done

這將產生以下結果:

0 1 2 3 4 5

下面是一個簡單的嵌套循環的例子。這個腳本打破兩個循環,如果的 var1 等於2 和 var2 等於0:

#!/bin/sh for var1 in 1 2 3 do for var2 in 0 5 do if [ $var1 -eq 2 -a $var2 -eq 0 ] then break 2 else echo "$var1 $var2" fi done done

這將產生以下結果。內循環有一個 break 命令與參數2。這表明,如果條件得到滿足應該跳出外循環,並最終從內循環跳出。

1 0 1 5

continue 語句:

continue語句break命令類似,但它會導致當前迭代的循環退出,而不是整個循環。

這種參數是有用的,當一個錯誤已經發生,但你想嘗試執行下一個循環迭代。

語法

continue

和break語句一樣,一個整數參數可以給continue命令跳過嵌套循環的命令。

continue n

這裏n指定第n個封閉循環 continue 。

例子:

下面的循環利用continue語句返回,並開始處理下一個語句:

#!/bin/sh NUMS="1 2 3 4 5 6 7" for NUM in $NUMS do Q=`expr $NUM % 2` if [ $Q -eq 0 ] then echo "Number is an even number!!" continue fi echo "Found odd number" done

這將產生以下結果:

Found odd number Number is an even number!! Found odd number Number is an even number!! Found odd number Number is an even number!! Found odd number