天天看點

linux 腳本continue,Shell break和continue語句的用法

在循環的過程中有兩個指令可以控制循環,分别是 break 指令和 continue 指令。

Shell break語句

break 指令允許跳出所有的循環,包括 while 和 until 循環。

【例 1】跳出單個循環。

使用 Vim 編輯器打開腳本檔案 test.sh,輸入 i 指令進入插入模式,輸入以下指令:

#!/bin/bash

for var1 in 1 2 3 4 5 6

do

if [ $var1 -eq 5 ]

then

break

fi

echo "var1: $var1"

done

echo "exit"

使用 sh(Bash)程序來執行腳本檔案,輸出結果為:

[[email protected] ~]# sh test.sh

var1: 1

var1: 2

var1: 3

var1: 4

exit

【例 2】跳出内部循環。

使用 Vim 編輯器打開腳本檔案 test.sh,輸入 i 指令進入插入模式,輸入如下指令:

#!/bin/bash

for (( a=1; a<4; a++ ))

do

echo "outer: $a"

for(( b=1; b<50; b++ ))

do

if [ $b -eq 5 ]

then

break

fi

echo "inner loop: $b"

done

done

使用 sh(Bash)程序來執行腳本檔案,輸出結果為:

[[email protected] ~]# sh test.sh

outer: 1

inner loop: 1

inner loop: 2

inner loop: 3

inner loop: 4

outer: 2

inner loop: 1

inner loop: 2

inner loop: 3

inner loop: 4

outer: 3

inner loop: 1

inner loop: 2

inner loop: 3

inner loop: 4

從輸出結果中可以看出,内部循環裡的 for 語句表示當變量 b 等于 50 時停止疊代,而内部循環的 if-then 語句表示當變量 b 的值為 5 時執行 break 指令。當内部循環通過 break 指令停止時,外部循環仍然繼續執行。

【例 3】跳出外部循環。

使用 Vim 編輯器打開腳本檔案 test.sh,輸入 i 指令進入插入模式,輸入如下指令:

#!/bin/bash

for (( a=1; a<4; a++ ))

do

echo "outer: $a"

for(( b=1; b<50; b++ ))

do

if [ $b -eq 4 ]

then

break 2

fi

echo "inner loop: $b"

done

done

使用 sh(Bash)程序來執行腳本檔案,輸出結果為:

[[email protected] ~]# sh test.sh

outer: 1

inner loop: 1

inner loop: 2

inner loop: 3

Shell continue語句

continue 指令可以提前終止某次循環的指令,但并不能完全終止整個循環。

【例 4】for 循環中使用 continue 指令。

使用 Vim 編輯器打開腳本檔案 test.sh,輸入 i 指令進入插入模式,輸入如下指令:

#!/bin/bash

for (( var1=1; var1<15; var1++ ))

do

if [ $var1 -gt 5 ] && [ $var1 -lt 10 ]

then

continue

fi

echo "num: $var1"

done

使用 sh(Bash)程序來執行腳本檔案,輸出結果為:

[[email protected] ~]# sh test.sh

num: 1

num: 2

num: 3

num: 4

num: 5

num: 10

num: 11

num: 12

num: 13

num: 14