您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關shell腳本實戰中while循環語句怎么用的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
while循環語句的語法分析
語法格式一:
while [條件] do 操作 done
語法格式二:
while read line do 操作 done < file
通過read命令每次讀取一行文件,文件內容有多少行,while循環多少次
注意:只有表達式為真,do和done之間的語句才會執行,表達式為假時,結束循環(即條件成立就一直執行循環)
例如:
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實現的讀取文件并著行打印
#!/bin/bash content=$(cat ./a.txt) for i in $content do echo $i done
此處感謝 @一只小小白丶 的建議,因為大多數人看到等號就會想到兩邊相等,這符合我們的教育習慣。
如果要實現圖中效果可以按照如下方式做:
#!/bin/bash num=1 while [ $num -lt 10 ] do sum=$(( $num * $num)) echo "$num * $num = $num" ((num++)) done
當然大多數人習慣了讓等式兩邊必須相等,不相等看上去別扭,這也是義務教育的結果,也可以稍微改一下:
#!/bin/bash num=1 while [ $num -lt 10 ] do sum=$(( $num * $num)) echo "$num * $num = $sum" ((num++)) done
這樣輸出的結果符合大多數人的數學習慣:
創建指定文件里的用戶
指定文件 name.txt 里面包含 zhangsan lisi wangwu
name.txt 如下:
[root@ecs-c13b ~]# cat name.txt zhangsan lisi wangwu
從name.txt里面遍歷用戶名并創建用戶
#!/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
感謝各位的閱讀!關于“shell腳本實戰中while循環語句怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。