這篇文章給大家分享的是有關(guān)shell腳本實(shí)戰(zhàn)中while循環(huán)語句怎么用的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
成都網(wǎng)站制作、網(wǎng)站建設(shè),成都做網(wǎng)站公司-創(chuàng)新互聯(lián)已向近千家企業(yè)提供了,網(wǎng)站設(shè)計(jì),網(wǎng)站制作,網(wǎng)絡(luò)營銷等服務(wù)!設(shè)計(jì)與技術(shù)結(jié)合,多年網(wǎng)站推廣經(jīng)驗(yàn),合理的價(jià)格為您打造企業(yè)品質(zhì)網(wǎng)站。while循環(huán)語句的語法分析
語法格式一:
while [條件] do 操作 done
語法格式二:
while read line do 操作 done < file
通過read命令每次讀取一行文件,文件內(nèi)容有多少行,while循環(huán)多少次
注意:只有表達(dá)式為真,do和done之間的語句才會(huì)執(zhí)行,表達(dá)式為假時(shí),結(jié)束循環(huán)(即條件成立就一直執(zhí)行循環(huán))
例如:
while true ;do echo 'helloword' done
#!/bin/bash num=1 while [ $num -le 10 ] do echo $num num=$(( $num + 1 )) done
用法一:
while read line do echo $line done <./a.txt
用法二:
cat ./a.txt| while read line do echo $line done
for實(shí)現(xiàn)的讀取文件并著行打印
#!/bin/bash content=$(cat ./a.txt) for i in $content do echo $i done
此處感謝 @一只小小白丶 的建議,因?yàn)榇蠖鄶?shù)人看到等號就會(huì)想到兩邊相等,這符合我們的教育習(xí)慣。
如果要實(shí)現(xiàn)圖中效果可以按照如下方式做:
#!/bin/bash num=1 while [ $num -lt 10 ] do sum=$(( $num * $num)) echo "$num * $num = $num" ((num++)) done
當(dāng)然大多數(shù)人習(xí)慣了讓等式兩邊必須相等,不相等看上去別扭,這也是義務(wù)教育的結(jié)果,也可以稍微改一下:
#!/bin/bash num=1 while [ $num -lt 10 ] do sum=$(( $num * $num)) echo "$num * $num = $sum" ((num++)) done
這樣輸出的結(jié)果符合大多數(shù)人的數(shù)學(xué)習(xí)慣:
創(chuàng)建指定文件里的用戶
指定文件 name.txt 里面包含 zhangsan lisi wangwu
name.txt 如下:
[root@ecs-c13b ~]# cat name.txt zhangsan lisi wangwu
從name.txt里面遍歷用戶名并創(chuàng)建用戶
#!/bin/bash for name in `cat /root/name.txt` #for name in $(cat /root/a.txt) do id $name &> /dev/null if [ $? -ne 0 ];then useradd $name echo "123456" |passwd --stdin $name &> /dev/null echo "user $name created" else echo "user $name is exist" fi done
感謝各位的閱讀!關(guān)于“shell腳本實(shí)戰(zhàn)中while循環(huán)語句怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!