Shell循環(huán)語(yǔ)句的使用(for循環(huán)、while循環(huán)、until循環(huán))
一.for循環(huán)
1.基本格式
讀取不同的變量值,用來(lái)逐個(gè)執(zhí)行同一組命令,經(jīng)常使用在已經(jīng)知道要進(jìn)行多少次循環(huán)的場(chǎng)景。
格式: for 變量名 in 取值列表 do 命令序列 done
2.腳本小倉(cāng)庫(kù)
2.1 打印一列問(wèn)號(hào)
#!/bin/bash for i in {1..9} do echo -e " ? " done
2.2 打印正方形
#!/bin/bash for j in {1..9} do for i in {1..9} do echo -e " * \c" #\c換行 done echo #換行 done
2.3 九九乘法表
#!/bin/bash for j in {1..9} do for i in `seq $j` do echo -e "${i}x${j}=$[i*j] \t\c" #\t tab鍵可以對(duì)齊 done echo done
2.4 求1..10奇數(shù)和
#/bin/bash sum=0 for i in {1..10..2} do sum=$[sum+i] let i++ done echo "10以?xún)?nèi)的奇數(shù)和為:$sum"
2.5 批量創(chuàng)建用戶(hù)并修改密碼
#!/bin/bash for user in {1..10} do echo stu${user}|xargs -n1 useradd echo "123123"|passwd --stdin stu${user} done
2.6 1累加到100方法一
#!/bin/bash sum=0 for ((i=0;i<=100;i++)) do sum=$[i+sum] done echo sum=$sum
2.7 1累加到100方法二
#!/bin/bash sum=0 for i in {1..100} do let sum=$i+$sum #sum=$[i+sum] #兩種方法都可以 done echo sum=$sum
二.while循環(huán)
1.基本格式
重復(fù)測(cè)試某個(gè)條件,只要條件成立則反復(fù)執(zhí)行
格式: while [ 條件測(cè)試操作 ] do #do代表循環(huán)的開(kāi)始 判斷式/命令序列 done #done代表循環(huán)的結(jié)束
2.腳本小倉(cāng)庫(kù)
2.1 猜價(jià)格小游戲
#!/bin/bash p=`echo $[RANDOM%1000+1]` time=0 while true do let time++ read -p "請(qǐng)輸入您猜測(cè)的價(jià)格(1-1000):" h if [ $h -eq $p ] then echo "恭喜您猜中了,您一共猜測(cè)了$time次" exit elif [ $h -gt $p ] then echo "您猜測(cè)的價(jià)格過(guò)高" else echo "您猜測(cè)的價(jià)格過(guò)低" fi done
2.2 1累加到100方法三
#!/bin/bash i=0 sum=0 while [ $i -le 100 ] do sum=$[i+sum] let i++ done echo $sum
三.until循環(huán)
1.基本格式
重復(fù)測(cè)試某個(gè)條件,只要條件不成立則反復(fù)執(zhí)行
格式: until [ 條件測(cè)試操作 ] do 判斷式/命令序列 done
2.腳本小倉(cāng)庫(kù)
2.1 1累加到100方法四
#!/bin/bash sum=0 i=0 until [ $i -gt 100 ] do sum=$[sum+i] let i++ done echo "{1..100}的和:$sum"
四.嵌套循環(huán)
在循環(huán)內(nèi)部再使用一個(gè)循環(huán)稱(chēng)為嵌套循環(huán)
格式: #!/bin/bash for ((i=1;i<5;i++)) do echo 此${i}為外部循環(huán) for((j=1;j<4;j++)) do echo -e "\t此${j}為內(nèi)部循環(huán)" done done
五.循環(huán)語(yǔ)句中的break、exit和continue的使用
1.break的使用
當(dāng)滿(mǎn)足條件的情況下break會(huì)跳出當(dāng)前循環(huán)體
#!/bin/bash for ((i=1;i<5;i++)) do echo 此${i}為外部循環(huán) for((j=1;j<4;j++)) do if [ $j -eq 3 ] <------如果j的值為3 then break <------跳出當(dāng)前循環(huán)(內(nèi)部) fi echo -e "\t此${j}為內(nèi)部循環(huán)" done done
2.exit的使用
當(dāng)滿(mǎn)足條件的情況下exit會(huì)直接退出當(dāng)前腳本
#!/bin/bash for ((i=1;i<5;i++)) do echo 此${i}為外部循環(huán) for((j=1;j<4;j++)) do if [ $j -eq 3 ] <------如果j的值為3 then exit <------結(jié)束當(dāng)前腳本 fi echo -e "\t此${j}為內(nèi)部循環(huán)" done done
3.continue的使用
continue中止某次循環(huán)中的命令,但不會(huì)完全中止整個(gè)命令
#!/bin/bash for ((i=1;i<5;i++)) do echo 此${i}為外部循環(huán) for((j=1;j<4;j++)) do if [ $j -eq 2 ] <------如果j的值為2 then continue <------中止循環(huán)中本次的命令,但不會(huì)完全中止整個(gè)循環(huán)或腳本 fi echo -e "\t此${j}為內(nèi)部循環(huán)" done done
到此這篇關(guān)于Shell循環(huán)語(yǔ)句的使用(for循環(huán)、while循環(huán)、until循環(huán))的文章就介紹到這了,更多相關(guān)Shell循環(huán)語(yǔ)句內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Shell中的循環(huán)語(yǔ)句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)語(yǔ)句簡(jiǎn)明教程
- shell腳本實(shí)戰(zhàn)-while循環(huán)語(yǔ)句
- linux shell常用循環(huán)與判斷語(yǔ)句(for,while,until,if)使用方法
- Windows Powershell Do While 循環(huán)
- Shell腳本之while循環(huán)應(yīng)用具體案例
相關(guān)文章
shell耗時(shí)計(jì)算的實(shí)現(xiàn)
本文主要介紹了shell耗時(shí)計(jì)算的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01shell腳本一鍵部署docker的實(shí)現(xiàn)步驟
作為一名經(jīng)驗(yàn)豐富的開(kāi)發(fā)者,我們經(jīng)常需要使用Docker來(lái)快速部署各種應(yīng)用,本文主要介紹了shell腳本一鍵部署docker的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03Linux下使用shell腳本自動(dòng)執(zhí)行腳本文件
這篇文章主要介紹了Linux下使用shell腳本自動(dòng)執(zhí)行腳本文件的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-12-12Bash Shell腳本學(xué)習(xí)小結(jié)
今天需要寫(xiě)一個(gè)Shell腳本。很簡(jiǎn)單,判斷一個(gè)日志文件是否大大于2G,如果大于2G則刪除。久了沒(méi)有寫(xiě)bash,竟然一點(diǎn)都想不起來(lái)寫(xiě)了。于是復(fù)習(xí)了一下,下面對(duì)今天的學(xué)習(xí)做個(gè)小結(jié)2013-01-01