標籤:

20.6 Shell 循環表達式 (從新手到菜鳥的Linux教程)

原文地址

先來看一下三種循環的語法:

$ help for | head -n1for: for NAME [in WORDS ... ] ; do COMMANDS; done$ help while | head -n1while: while COMMANDS; do COMMANDS; done$ help until | head -n1until: until COMMANDS; do COMMANDS; done

反正我覺得 until 相對於 while 是沒什麼用= =

for 循環的話 NAME 是依次取 WORDS 中空格分割的部分;相對與 c 系語言的 for (auto i = 0; i < n; ++i) ,在 shell 里一般是這樣實現:

$ for i in `seq 1 5`> do> echo "Iteration $i."> doneIteration 1.Iteration 2.Iteration 3.Iteration 4.Iteration 5.

和 matlab 一樣從 1 開始計數┑( ̄Д  ̄)┍


while 結構的話基本上就是用 shell 的方式寫條件判斷式,比如:

$ i=1$ while [ $i -le 5 ]> do> echo "Iteration $i."> i=`expr $i + 1`> doneIteration 1.Iteration 2.Iteration 3.Iteration 4.Iteration 5.

別忘了更新 i = = <del>但是更新起來這麼麻煩還不如直接用 for</del>

在 Shell while循環_C語言中文網 中看到一個很好的用法,就是把條件判斷和命令結合在一起使用:

$ while read INPUT> do> echo "Input is $INPUT."> doneha!Input is ha!.fooInput is foo.barInput is bar.$

中斷輸入是輸入 ^D (Ctrl-D) ,這是文件結束的脫字元表示。


順便提一句 break 和 continue 也是可以用的,用法和其他語言是一樣的,就是還可以接受一個數字參數,表示需要跳出幾層/繼續最近的第幾層循環。


推薦閱讀:

如何評價 Windows 版「bash」(及其相關 *nix 子系統)?
linux刪除根目錄後發生了什麼?
20.5 Shell 條件表達式 (從新手到菜鳥的Linux教程)
【Bash On Windows】在 Windows Subsystem for Linux(WSL) 上運行任何桌面環境(已達可用階段)
20.7 輸入輸出重定向 (從新手到菜鳥的Linux教程)

TAG:Bash |