shel while循環(huán)示例小結(jié)
1.基本語(yǔ)法
while [ 條件表達(dá)式 ] do 語(yǔ)句 語(yǔ)句 done
示例:循環(huán)輸出 1~10這幾個(gè)數(shù)
[root@openEuler ~]# cat while1.sh #!/bin/bash i=1 while [ $i -le 10 ] do echo $i let i++ done
示例:使用 exec 讀取指定文件的內(nèi)容并循環(huán)輸出。
# 第一步創(chuàng)建文件及內(nèi)容 [root@openEuler ~]# cat > myfile << EOF > open > openlab > openlab123 > linux > readhat > EOF [root@openEuler ~]# cat myfile open openlab openlab123 linux readhat # 第二步:編寫(xiě)腳本來(lái)實(shí)現(xiàn)文件讀取并循環(huán)輸出 [root@openEuler ~]# cat while2.sh #!/bin/bash exec < myfile while read line do echo $line done [root@openEuler ~]# bash while2.sh open openlab openlab123 linux readhat
使用另一種方式來(lái)讀取文件:
[root@openEuler ~]# cat while3.sh #!/bin/bash while read line do echo $line done < myfile [root@openEuler ~]# bash while3.sh open openlab openlab123 linux readhat
2.無(wú)限循環(huán)
在 while 的表達(dá)式中,可以指定以下幾個(gè)特殊值:
- true 它會(huì)一直循環(huán),而且它的狀態(tài)返碼是 0
- false 它不做任何事,表示成功,狀態(tài)碼為 0
- : 它的作用與 true 相同,都是進(jìn)行無(wú)限循環(huán)
示例:
[root@openEuler ~]# while true ; do echo 123123 ; done #會(huì)一直循環(huán) [root@openEuler ~]# while false ; do echo 123123 ; done [root@openEuler ~]# echo $? 0 [root@openEuler ~]# while : ; do echo 123123 ; done
3.使用示例
[root@openEuler ~]# cat while4.sh #!/bin/bash price=$[ $RANDOM % 100 ] time=0 while true do read -p 'Please enter product price [0-99]: ' input let time++ if [ $input -eq $price ]; then echo 'Good luck, you guessed it.' echo 'You have guessed $time times.' exit 0 elif [ $input -gt $price ]; then echo "$input is to high" else echo "$input is to low" fi if [ $time -eq 5 ]; then echo "You have guessed is 5 times. exit" exit 1 fi done [root@openEuler ~]# bash while4.sh Please enter product price [0-99]: 50 50 is to low Please enter product price [0-99]: 80 80 is to high Please enter product price [0-99]: 70 70 is to high Please enter product price [0-99]: 60 60 is to low Please enter product price [0-99]: 65 65 is to low You have guessed is 5 times. exit [root@openEuler ~]#
示例:使用while讀取文件
# 1. 創(chuàng)建文件
[root@openEuler ~]# cat ips
192.168.72.131 22
192.168.72.132 23
192.168.72.133 22
# 2. 編寫(xiě)腳本
[root@openEuler ~]# cat while6.sh
#!/bin/bash
while read line
do
IP=`echo $line|cut -d" " -f1` # 也可以使用awk來(lái)實(shí)現(xiàn),如:IP=`echo $line|awk '{print $1}'`
PORT=$(echo $line|cut -d " " -f 2)
echo "IP:$IP, PORT:${PORT}"
done < ips
# 3. 運(yùn)行測(cè)試
[root@openEuler ~]# bash while6.sh
IP:192.168.72.131, PORT:22
IP:192.168.72.132, PORT:23
IP:192.168.72.133, PORT:22到此這篇關(guān)于shel while循環(huán)的文章就介紹到這了,更多相關(guān)shell while循環(huán)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
shell 腳本之用ab每隔30分鐘并發(fā)一次休息10分鐘
這篇文章給大家分享如何使用shll解決用ab每隔30分鐘并發(fā)一次休息10分鐘,需要的朋友可以參考下2019-11-11
Shell腳本實(shí)現(xiàn)自動(dòng)備份網(wǎng)站和數(shù)據(jù)庫(kù)并上傳到云存儲(chǔ)
這篇文章主要為大家詳細(xì)介紹了Shell腳本實(shí)現(xiàn)自動(dòng)備份網(wǎng)站和數(shù)據(jù)庫(kù)并上傳到云存儲(chǔ)的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),希望對(duì)大家有所幫助2025-11-11
linux修改tomcat默認(rèn)訪問(wèn)項(xiàng)目的具體步驟(必看篇)
下面小編就為大家?guī)?lái)一篇linux修改tomcat默認(rèn)訪問(wèn)項(xiàng)目的具體步驟(必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03
開(kāi)發(fā)必備Linux常用的幾個(gè)命令分享
Linux作為一個(gè)高度成熟和強(qiáng)大的操作系統(tǒng),擁有非常豐富的命令行工具,對(duì)于Java開(kāi)發(fā)者來(lái)說(shuō),掌握一些常用的Linux命令可以大大提高工作效率,尤其是在服務(wù)器端開(kāi)發(fā)時(shí),本文小編給大家分享了一些常用命令,需要的朋友可以參考下2023-10-10
linux?shell文件轉(zhuǎn)碼iconv命令的使用
本文主要介紹了linux?shell文件轉(zhuǎn)碼iconv命令的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
使用Shell腳本如何啟動(dòng)/停止Java的jar程序
這篇文章主要介紹了使用Shell腳本如何啟動(dòng)/停止Java的jar程序,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
Bash?Shell通配符與正則表達(dá)式實(shí)用示例詳解
正則表達(dá)式是一種可以用于模式匹配和替換的工具,通過(guò)正則表達(dá)式,Shell可以使用一系列的特殊字符構(gòu)建匹配模式,然后將匹配模式與待比較字符串或文件進(jìn)行比較,這篇文章主要介紹了Bash?Shell通配符與正則表達(dá)式的相關(guān)資料,需要的朋友可以參考下2025-10-10

