學習腳本就是為了方便我們運維工作,而對運維人員從來講,有很多工作也是需要重復執行的,比如我們管理用戶帳戶時就需要批量創建和刪除用戶帳戶。而此時如果使用系統自帶的useradd或者userdel去操作的話,就只能機械式的一個一個創建,一個一個的刪除。那我們是不是就可以考慮寫一個程序,讓它自動化的去創建了。此時,我們的循環執行概念也就出來了。循環就是讓程序按照一定的條件反復的執行相關操作,直到不在滿足循環條件時結束。
循環語句常見分類:
1,for語句
2,while語句
3,until語句
循環體包括兩部分:
1,循環的進入條件
2,循環的退出條件
循環次數:
1,事先已知 for語句
2,事先未知 while、until語句
for循環常見語法格式:
for 變量名 in 列表;do
循環體
done
循環執行機制:依次將列表中的元素賦值給變量名,每次賦值后執行一次循環體,直到列表中的元素耗盡,循環結束
列表生成方式:
(1) 直接給出列表
(2) 整數列表:
(a) {start..end} 如:{1..10}
(b) $(seq [start [step]] end) 如:`seq 1 2 100` 表示1-100之間的所有奇數
(3) 返回列表的命令 $(COMMAND) 如:`ls /etc`
(4) 使用glob,如:*.sh
(5) 變量引用;$@, $*
for循環特殊用法:
雙小括號方法,即((…))格式,也可以用于算術運算
雙小括號方法也可以使bash Shell實現C語言風格的變量操作
#I=10
#((I++))
for循環特殊用法格式:
for ((控制變量初始化;條件判斷表達式;控制變量的修正表達式));do
循環體
done
控制變量初始化:僅在運行到循環代碼段時執行一次控制變量的修正表達式:每輪循環結束會先進行控制變量修正運算,而后再做條件判斷for循環應用實例:
1,計算1-100之間所有正整數的和
#!/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,自動掃描1-254網段的所有主機,統計在線主機數與不在線主機數
#!/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個隨機數,并找出最大隨機數和最小隨機數
新聞熱點
疑難解答