日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Bash的循环结构(for和while)

發(fā)布時(shí)間:2023/12/13 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Bash的循环结构(for和while) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在bash有三中類(lèi)型的循環(huán)結(jié)構(gòu)表達(dá)方法:for,while,until。這里介紹常用的兩種:for和while。

for

bash的for循環(huán)表達(dá)式和python的for循環(huán)表達(dá)式風(fēng)格很像:

for var in $(ls) doecho "$var"done

取值列表有很多種表達(dá)方式,可以結(jié)合各種命令比如 ls,cat,sed等等

也可以是各種迭代類(lèi)型,比如:

{1..100..2}: 1到100增量為2

{a..z}: a到z的字母

`seq 1 2 100`: 1到100增量為2

?

while

bash的while循環(huán)表達(dá)式和bash的if表達(dá)式風(fēng)格類(lèi)似,循環(huán)條件需要用方括號(hào) []:

COUNTER=0 while [ $COUNTER -lt 10] doecho "$COUNTER"let COUNTER+=1 done

?

while和重定向聯(lián)用

輸出重定向'>'比較好理解,就是將while后面的命令以及循環(huán)體中的標(biāo)準(zhǔn)輸出重定向,例如

while seq 0 1 10 #注意這里直接寫(xiě)命令就行,不需要``或者[] doecho "ok"sleep 1000 #這個(gè)循環(huán)是個(gè)無(wú)限循環(huán),加sleep為了查看結(jié)果 done>test.tx $cat test.txt 0 1 2 3 4 5 6 7 8 9 10 ok

注意,這里的重定向不僅打印結(jié)構(gòu)體中的標(biāo)準(zhǔn)輸出,而且也打印命令的輸出。

?

輸入重定向是把文件重定向到while后面的命令中,類(lèi)似于管道(pipe)

while grep "1" do
echo "This line contains 1"

done<test.txt

利用剛剛生成的test.txt文件,運(yùn)行上述腳本的結(jié)果為:

可以看出,雖然有兩行包含字符“1”,但是結(jié)構(gòu)體里的echo語(yǔ)句只執(zhí)行了一次,這說(shuō)明只要while后面的命令有輸出,那么就執(zhí)行結(jié)構(gòu)體一次,所以這和cat | grep也沒(méi)什么區(qū)別了。

?當(dāng)然也可以輸入輸出重定向一起使用,比如上面的例子可以改為:

while grep "1" doecho "This line contains 1" done<test.txt>result.txt

?

轉(zhuǎn)載于:https://www.cnblogs.com/liuyihua1992/p/9689295.html

總結(jié)

以上是生活随笔為你收集整理的Bash的循环结构(for和while)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。