break命令是退出循環(huán)的一個簡單方法??梢杂胋reak命令來退出任意類型的循環(huán),包括 while和until循環(huán)。
有幾種情況可以使用break命令,那么到底是哪些情況下可以使用break命令呢?下面南昌網(wǎng)絡公司-百恒網(wǎng)絡就來和大家介紹一下:
1、跳出單個循環(huán)
在shell執(zhí)行break命令時,它會嘗試跳出當前正在執(zhí)行的循環(huán)。
$ cat test17
#!/bin/bash
# breaking out of a for loop
for var1 in 1 2 3 4 5 6 7 8 9 10
do
if [ $var1 -eq 5 ]
then
break
fi
echo "Iteration number: $var1"
done
echo "The for loop is completed"
$ ./test17
Iteration number: 1
Iteration number: 2
Iteration number: 3
Iteration number: 4
The for loop is completed
$
for循環(huán)通常都會遍歷列表中指定的所有值。但當滿足if-then的條件時,shell會執(zhí)行break 命令,停止for循環(huán)。
這種方法同樣適用于while和until循環(huán)。
$ cat test18
#!/bin/bash
# breaking out of a while loop
var1=1
while [ $var1 -lt 10 ]
do
if [ $var1 -eq 5 ]
then
break
fi
echo "Iteration: $var1"
var1=$[ $var1 + 1 ]
done
echo "The while loop is completed"
$ ./test18
Iteration: 1
Iteration: 2
Iteration: 3
Iteration: 4
The while loop is completed
$
while循環(huán)會在if-then的條件滿足時執(zhí)行break命令,終止。
2、跳出內(nèi)部循環(huán)
在處理多個循環(huán)時,break命令會自動終止你所在的內(nèi)層的循環(huán)。
$ cat test19
#!/bin/bash
# breaking out of an inner loop
for (( a = 1; a < 4; a++ ))
do
echo "Outer loop: $a"
for (( b = 1; b < 100; b++ ))
do
if [ $b -eq 5 ]
then
break
fi
echo " Inner loop: $b"
done
done $ ./test19
Outer loop: 1
Inner loop: 1
Inner loop: 2
Inner loop: 3
Inner loop: 4
Outer loop: 2
Inner loop: 1
Inner loop: 2
Inner loop: 3
Inner loop: 4
Outer loop: 3
Inner loop: 1
Inner loop: 2
Inner loop: 3
Inner loop: 4
$
內(nèi)部循環(huán)里的for語句指明當變量b等于100時停止迭代。但內(nèi)部循環(huán)的if-then語句指明當 變量b的值等于5時執(zhí)行break命令。注意,即使內(nèi)部循環(huán)通過break命令終止了,外部循環(huán)依然 繼續(xù)執(zhí)行。
3、跳出外部循環(huán)
有時你在內(nèi)部循環(huán),但需要停止外部循環(huán)。break命令接受單個命令行參數(shù)值:
break n
其中n指定了要跳出的循環(huán)層級。默認情況下,n為1,表明跳出的是當前的循環(huán)。如果你將 n設為2,break命令就會停止下一級的外部循環(huán)。
$ cat test20
#!/bin/bash
# breaking out of an outer loop
for (( a = 1; a < 4; a++ ))
do
echo "Outer loop: $a"
for (( b = 1; b < 100; b++ ))
do
if [ $b -gt 4 ]
then
break 2
fi
echo " Inner loop: $b"
done
done
$ ./test20
Outer loop: 1
Inner loop: 1
Inner loop: 2
Inner loop: 3
Inner loop: 4
$
注意,當shell執(zhí)行了break命令后,外部循環(huán)就停止了。
以上便是百恒網(wǎng)絡為大家介紹的關(guān)于shell腳本中使用break命令退出循環(huán)的幾種情況,了解更多關(guān)于shell腳本方面的知識,歡迎訪問百恒網(wǎng)絡,百恒網(wǎng)絡是優(yōu)秀的南昌網(wǎng)絡公司之一,精通各種網(wǎng)站建設語言方面的技術(shù),主營網(wǎng)站建設、微信開發(fā)、APP開發(fā)等服務,如有需要我們服務的地方,可隨時來電和我們聯(lián)系!