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 |