
循環(huán)語(yǔ)句
1.死循環(huán)
#!/bin/sh
while true
do
echo "test_1"
sleep 1
done
或?qū)hile true替換為while [ 1 ]也可以。
2.條件循環(huán)
例1:num每次加1并打印,執(zhí)行5次
2.1 使用for循環(huán)
#!/bin/sh
for num in 0 1 2 3 4
do
echo "num = $num"
sleep 1
done
結(jié)果:
linye@ly:~/test_scripts$ ./test_1.sh
num = 0
num = 1
num = 2
num = 3
num = 4
使用for循環(huán)再做個(gè)實(shí)驗(yàn),如下:
#!/bin/sh
for num in 0 5 2 6 4
do
echo "num = $num"
sleep 1
done
結(jié)果:
linye@ly:~/test_scripts$ ./test_2.sh
num = 0
num = 5
num = 2
num = 6
num = 4
知識(shí):
發(fā)現(xiàn)for . in語(yǔ)句,其實(shí)就是將in后面的數(shù)值帶進(jìn)去執(zhí)行,直到in后面的數(shù)值沒(méi)有了,則執(zhí)行完成,所以在特定的且個(gè)數(shù)比較少的條件循環(huán)時(shí)即可使用該方法。
2.2 使用while循環(huán)
#!/bin/sh
num=0
while [ $num -lt 5 ]
do
echo "num = $num"
num=`expr $num + 1`
sleep 1
done
結(jié)果:
linye@ly:~/test_scripts$ ./test_1.sh
num = 0
num = 1
num = 2
num = 3
num = 4
知識(shí):
num++ 的實(shí)現(xiàn),在C語(yǔ)言里面的num++直接即可,但shell這邊的表達(dá)有些不一樣,有很多形式,如下:
num=`expr $num + 1`
let num=num+1
((num=num+1))
num=$(( $num + 1 ))
2.3 使用until循環(huán)
#!/bin/sh
num=0
until [ ! $num -lt 5 ]
do
echo "num = $num"
num=`expr $num + 1`
sleep 1
done
結(jié)果:
linye@ly:~/test_scripts$ ./test_1.sh
num = 0
num = 1
num = 2
num = 3
num = 4
知識(shí):
觀察可知,until與while的用法其實(shí)一樣,while是知道條件不滿(mǎn)足則跳出循環(huán),until是條件滿(mǎn)足則跳出循環(huán),所以加個(gè)!符號(hào)即可。
補(bǔ)充:
上面的很多指令其實(shí)有陷阱,就是格式,在shell里面空格是很經(jīng)常使用的,只要會(huì)引起歧義的地方都要用空格隔開(kāi)。
- [ ]、( ) 括號(hào)的前后都要有空格
- 變量的賦值=之間不要有空格
- 使用變量時(shí)要加$
- $變量的加減+ - 之間要有空格
循環(huán)語(yǔ)句的分析就到這邊,有感悟時(shí)會(huì)持續(xù)會(huì)更新。
注:以上內(nèi)容來(lái)自C語(yǔ)言中文網(wǎng)及本人在使用過(guò)程的一些理解整理。如有侵權(quán),請(qǐng)及時(shí)通知我,我將馬上刪除,如有錯(cuò)誤之處也請(qǐng)指出,進(jìn)行探討學(xué)習(xí)。文章只是起一個(gè)引導(dǎo)作用,詳細(xì)的數(shù)據(jù)解析內(nèi)容還請(qǐng)查看Shell相關(guān)教程,感謝您的查閱。