1. 程式人生 > >Shell腳本(3)-循環語句

Shell腳本(3)-循環語句

case語句 while語句 for語句

for語句
1、for語句
1)簡介
在實際工作中,經常會遇到某項任務要多次執行的情況。而每次執行時僅僅是處理的對象不一樣,其他命令相同。例如,根據通訊錄中的姓名列表創建系統帳號、根據服務清單檢查各主機的存活狀態等。
當面對各種列表重復任務時,使用簡單的if語句已經難以滿足要求,而順序編寫全部代碼更異繁瑣、困難重重,而for循環語句就可以解決此類問題。
2)for語句結構
for 變量名 in 取值列表
do
命令序列
done
註意:編寫for語句時,我們首先要編輯一個取值列表文件。
vim valueslist.txt
技術分享圖片
然後編寫腳本
vim aduser.sh
技術分享圖片
執行腳本,並使用tail -3查看/etc/passwd的後三行,可以看到剛剛添加的三個用戶
技術分享圖片
2、while語句
1)簡介
while語句其實也是循環語句,while語句與for語句有些不同。for語句適用於列表對象不規律,且列表來源已經固定的場合。而while語句適用於要求控制循環次數、操作對象按數字順序編號、按特定條件執行重復操作的場合。
2)while語句結構
while 條件測試操作
do
命令序列
done
簡單舉例:批量建立20個用戶,而用戶的id為編號標識。
vim aduser2.sh
技術分享圖片
驗證
技術分享圖片
3、case語句
1)簡介
case語句主要適用於以下情況:某個變量存在多種取值,需要對其中的每一種取值分別執行不同的命令序列,這種情況與多分支的if語句非常相似,只不過語句需要判斷多個不同的條件而case語句只是判斷一個變量的不同取值
2)case語句結構
case 變量值 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
。。。
*)
默認命令序列
esac
應用舉例:編輯一個檢測輸入字符的腳本,如下:vim chkchar.sh
技術分享圖片
驗證腳本
技術分享圖片

Shell腳本(3)-循環語句