shell腳本實(shí)戰(zhàn)-while循環(huán)語句
前言
上文我們討論了for循環(huán)的使用,在有限循環(huán)里,我們使用for循環(huán)是很方便的一件事情,今天我們來探討下while循環(huán)
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
while 的使用案例
1. 循環(huán)輸出1-10的數(shù)字
#!/bin/bash num=1 while [ $num -le 10 ] do echo $num num=$(( $num + 1 )) done
2. 使用while讀文件并打印文件內(nèi)容
用法一:
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
3. 輸出兩數(shù)相乘的效果(如下圖)
此處感謝 @一只小小白丶 的建議,因?yàn)榇蠖鄶?shù)人看到等號(hào)就會(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
總結(jié)
到目前為止,for-while-if-case,這四個(gè)常用的控制語句我們都已經(jīng)探討過了,接下來就是大量練習(xí)和綜合應(yīng)用的時(shí)候,操練起來把。
到此這篇關(guān)于shell腳本實(shí)戰(zhàn)-while循環(huán)語句的文章就介紹到這了,更多相關(guān)shell -while循環(huán)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Shell中的循環(huán)語句for、while、until實(shí)例講解
- linux shell循環(huán):for、while、until用法詳解
- Shell中的for和while循環(huán)詳細(xì)總結(jié)
- Shell中的while循環(huán)幾種使用實(shí)例詳解
- shell命令while循環(huán)中使用sleep命令代碼示例
- Shell腳本while、until循環(huán)語句簡(jiǎn)明教程
- linux shell常用循環(huán)與判斷語句(for,while,until,if)使用方法
- Windows Powershell Do While 循環(huán)
- Shell循環(huán)語句的使用(for循環(huán)、while循環(huán)、until循環(huán))
- Shell腳本之while循環(huán)應(yīng)用具體案例
相關(guān)文章
Linux命令創(chuàng)建日期文件夾或者文件的實(shí)例代碼
本文通過實(shí)例代碼給大家介紹了Linux命令創(chuàng)建日期文件夾或者文件的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10crontab實(shí)現(xiàn)每隔多少天執(zhí)行一次腳本的兩種方法
相信大家在工作中,經(jīng)常會(huì)遇到定時(shí)執(zhí)行腳本的功能要求,或某個(gè)命令的情況。那么下面這篇文章主要給大家介紹了關(guān)于crontab實(shí)現(xiàn)每隔多少天執(zhí)行一次腳本的相關(guān)資料,對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-08-08shell腳本自動(dòng)檢測(cè)網(wǎng)絡(luò)掉線和自動(dòng)重連
這篇文章主要介紹了shell腳本自動(dòng)檢測(cè)網(wǎng)絡(luò)掉線和自動(dòng)重連,這篇文章介紹的是自動(dòng)檢測(cè)連接網(wǎng)絡(luò)的解決方法,需要的朋友可以參考下2019-12-12bash提取字符串${string:position:length}的具體使用
本文主要介紹了bash提取字符串${string:position:length}的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06linux下批量刪除utf8 bom的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄猯inux下批量刪除utf8 bom的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03shell 判斷字符串是否存在數(shù)組中的實(shí)現(xiàn)示例
這篇文章主要介紹了shell 判斷字符串是否存在數(shù)組中的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10一天一個(gè)shell命令 linux文本操作系列-chmod命令用法
這篇文章主要介紹了一天一個(gè)shell命令 linux文本操作系列-chmod命令用法,需要的朋友可以參考下2016-06-06linux shell之pushd、popd和dirs的使用講解
今天小編就為大家分享一篇關(guān)于linux shell之pushd、popd和dirs的使用講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-04-04