Bash的循环结构(for和while)
在bash有三中類型的循環結構表達方法:for,while,until。這里介紹常用的兩種:for和while。
for
bash的for循環表達式和python的for循環表達式風格很像:
for var in $(ls) doecho "$var"done取值列表有很多種表達方式,可以結合各種命令比如 ls,cat,sed等等
也可以是各種迭代類型,比如:
{1..100..2}: 1到100增量為2
{a..z}: a到z的字母
`seq 1 2 100`: 1到100增量為2
?
while
bash的while循環表達式和bash的if表達式風格類似,循環條件需要用方括號 []:
COUNTER=0 while [ $COUNTER -lt 10] doecho "$COUNTER"let COUNTER+=1 done?
while和重定向聯用
輸出重定向'>'比較好理解,就是將while后面的命令以及循環體中的標準輸出重定向,例如
while seq 0 1 10 #注意這里直接寫命令就行,不需要``或者[] doecho "ok"sleep 1000 #這個循環是個無限循環,加sleep為了查看結果 done>test.tx $cat test.txt 0 1 2 3 4 5 6 7 8 9 10 ok注意,這里的重定向不僅打印結構體中的標準輸出,而且也打印命令的輸出。
?
輸入重定向是把文件重定向到while后面的命令中,類似于管道(pipe)
while grep "1" doecho "This line contains 1"
done<test.txt
利用剛剛生成的test.txt文件,運行上述腳本的結果為:
可以看出,雖然有兩行包含字符“1”,但是結構體里的echo語句只執行了一次,這說明只要while后面的命令有輸出,那么就執行結構體一次,所以這和cat | grep也沒什么區別了。
?當然也可以輸入輸出重定向一起使用,比如上面的例子可以改為:
while grep "1" doecho "This line contains 1" done<test.txt>result.txt?
轉載于:https://www.cnblogs.com/liuyihua1992/p/9689295.html
總結
以上是生活随笔為你收集整理的Bash的循环结构(for和while)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 华夏银行易达金是什么?易达金怎么样?
- 下一篇: 民生银行手机银行怎么开通?可以注销吗?
