學(xué)習(xí)腳本就是為了方便我們運(yùn)維工作,而對(duì)運(yùn)維人員從來(lái)講,有很多工作也是需要重復(fù)執(zhí)行的,比如我們管理用戶帳戶時(shí)就需要批量創(chuàng)建和刪除用戶帳戶。而此時(shí)如果使用系統(tǒng)自帶的useradd或者userdel去操作的話,就只能機(jī)械式的一個(gè)一個(gè)創(chuàng)建,一個(gè)一個(gè)的刪除。那我們是不是就可以考慮寫一個(gè)程序,讓它自動(dòng)化的去創(chuàng)建了。此時(shí),我們的循環(huán)執(zhí)行概念也就出來(lái)了。循環(huán)就是讓程序按照一定的條件反復(fù)的執(zhí)行相關(guān)操作,直到不在滿足循環(huán)條件時(shí)結(jié)束。
循環(huán)語(yǔ)句常見(jiàn)分類:
1,for語(yǔ)句
2,while語(yǔ)句
3,until語(yǔ)句
循環(huán)體包括兩部分:
1,循環(huán)的進(jìn)入條件
2,循環(huán)的退出條件
循環(huán)次數(shù):
1,事先已知 for語(yǔ)句
2,事先未知 while、until語(yǔ)句
for循環(huán)常見(jiàn)語(yǔ)法格式:
for 變量名 in 列表;do
循環(huán)體
done
循環(huán)執(zhí)行機(jī)制:依次將列表中的元素賦值給變量名,每次賦值后執(zhí)行一次循環(huán)體,直到列表中的元素耗盡,循環(huán)結(jié)束
列表生成方式:
(1) 直接給出列表
(2) 整數(shù)列表:
(a) {start..end} 如:{1..10}
(b) $(seq [start [step]] end) 如:`seq 1 2 100` 表示1-100之間的所有奇數(shù)
(3) 返回列表的命令 $(COMMAND) 如:`ls /etc`
(4) 使用glob,如:*.sh
(5) 變量引用;$@, $*
for循環(huán)特殊用法:
雙小括號(hào)方法,即((…))格式,也可以用于算術(shù)運(yùn)算
雙小括號(hào)方法也可以使bash Shell實(shí)現(xiàn)C語(yǔ)言風(fēng)格的變量操作
#I=10
#((I++))
for循環(huán)特殊用法格式:
for ((控制變量初始化;條件判斷表達(dá)式;控制變量的修正表達(dá)式));do
循環(huán)體
done
控制變量初始化:僅在運(yùn)行到循環(huán)代碼段時(shí)執(zhí)行一次控制變量的修正表達(dá)式:每輪循環(huán)結(jié)束會(huì)先進(jìn)行控制變量修正運(yùn)算,而后再做條件判斷for循環(huán)應(yīng)用實(shí)例:
1,計(jì)算1-100之間所有正整數(shù)的和
#!/bin/bash#Author:wangjun#Contact QQ:183530300#Version:1.0#Create time:2016-08-17 16:53:28#Description:1-100 all positive integer's sumdeclare -i sum=0for I in {1..100};do let sum+=$Idoneecho "1-100 all positive integer's sum : $sum"
2,自動(dòng)掃描1-254網(wǎng)段的所有主機(jī),統(tǒng)計(jì)在線主機(jī)數(shù)與不在線主機(jī)數(shù)
#!/bin/bash #Author:wangjun#Contact QQ:183530300#Version:1.0#Create time:2016-08-17 11:25:37#Description:ping all hosts and count the numberdeclare -i online=0declare -i offline=0declare -i host=1 for host in `seq 254`;do ping -c 1 -W 1 10.1.250.$host &> /dev/null && echo "10.1.250.$host is online" && let online=$online+1 || let offline++doneecho "Online hosts number : $online"echo "Offline hosts number : $offline"
3,生成10個(gè)隨機(jī)數(shù),并找出最大隨機(jī)數(shù)和最小隨機(jī)數(shù)
新聞熱點(diǎn)
疑難解答
網(wǎng)友關(guān)注