今天來講如何在shell script中執行迴圈,不過在講loop本身時我會先講解其中的一些關鍵字
Shell script有兩種分隔方式
;
)分隔(單行模式loop)\n
)分隔(多行模式loop)在shell script中除了常見的for與while以外,還多了一個until,其用途與while相反。until是當條件式不成立或狀態碼不為0時就繼續執行直到條件式成立或狀態碼為0
以下是shell script中的while與until的用法
## single line
while cmd; do some-thing; done
## multi line
until cmd
do some-thing
done
至於for loop除了可以使用C-style的方式以外還可以從一個array或空格分隔的字串來Loop
for (( init-expr; loop-expr; runEveryTime-expr ))
do
some-thing
done
計算算術表達式init-expr,然後重複計算算術表達式loop-expr,直到它的值為零。每次expr的值不為零時,執行指令並計算算術表達式runEveryTime-expr
for name [ [in [words …] ] ; ]
do
commands
done
這種則是對於words(一個或多個字符串的集合,或Brace Expansion)進行loop
如果在for迴圈中不指定in words,那麼for命令會對每個位置參數執行一次命令,就像指定了in "$@"一樣。這裡的位置參數是指傳遞給腳本或函數的參數。
https://shengyu7697.github.io/shell-script-for/
https://www.gnu.org/software/bash/manual/html_node/Looping-Constructs.html