for 變量名in 列表;do
循環體
done
?執行機制:
依次將列表中的元素賦值給“變量名”; 每次賦值后即執行一次循環體; 直到列表中的元素耗盡,循環結束
列表生成方式:
(1) 直接給出列表
(2) 整數列表:
(a) {start..end}
(b) $(seq[start [step]] end)
(3) 返回列表的命令
$(COMMAND)
(4) 使用glob,如:*.sh
(5) 變量引用;
$@, $*
練習題 for 實現
1、判斷/var/目錄下所有文件的類型
2、添加10個用戶user1-user10,密碼同用戶名
刪除上用戶
3、/etc/rc.d/rc3.d目錄下分別有多個以K開頭和以S開頭的文件;分別讀取每個文件,以K開頭的文件輸出為文件加stop,以S開頭的文件輸出為文件名加start;
“K34filename stop”
“S66filename start”
4、寫一個腳本,提示輸入正整數n的值,計算1+2+3+…n的總和
判斷整數
5、寫一個腳本,提示請輸入網絡地址,如192.168.0.0,判斷輸入的網段中主機在線狀態
6、打印九九乘法表
?while CONDITION; do
循環體
done
?CONDITION:循環控制條件;進入循環之前,先做一次判斷;每一次循環之后會再次做判斷;條件為“true”,則執行一次循環;直到條件測試狀態為“false”終止循環
?因此:CONDTION一般應該有循環控制變量;而此變量的值會在循環體不斷地被修正
?進入條件:CONDITION為true;
?退出條件:CONDITION為false
?1、求100以內所有正整數之和
?2、通過ping命令探測172.16.250.1-254范圍內的所有主機的在線狀態,統計在線主機和離線主機各多少。
?3、打印九九乘法表
?4、利用變量RANDOM生成10個隨機數字,輸出這個10數字,并顯示其中的最大者和最小者
?
5、打印國際象棋棋盤
until CONDITION; do
循環體
?done
?進入條件:CONDITION 為false
?退出條件:CONDITION 為true
用于循環體中
?continue [N]:提前結束第N層的本輪循環,而直接進入下一輪判斷;最內層為第1層
while CONDTIITON1; do
CMD1
…
if CONDITION2; then
continue
fi
CMDn
…
done
用于循環體中
?break [N]:提前結束第N層循環,最內層為第1層
while CONDTIITON1; do
CMD1
…
if CONDITION2; then
break
fi
CMDn
…
done
while true; do
循環體
?done
?until false; do
循環體
?Done
原創文章,作者:Nicolas ZhaoIV,如若轉載,請注明出處:http://www.www58058.com/36313