條件判斷與循環筆記
1、if 語句(條件判斷)
- 格式:
if? 判斷條件1 ;? then
條件為真的分支代碼
elif 判斷條件2; then
條件為真的分支代碼
elif 判斷條件3; then
條件為真的分支代碼
else
以上條件都為假的分支代碼
fi
- 特點:
1)if 語句可以嵌套;
2)它是逐條件進行判斷,第一次遇為“真”條件時,執行其分支,而后結束整個if語句。
2、case語句(條件選擇)
- 格式:
case? 變量引用? in
Pat1)
分支1
;;
Pat2)
分支2
;;
……
*)
默認分支
;;
esac
- 特點:
1)case支持glob風格的通配符: *: 任意長度任意字符? ??: 任意單個字符? ?[]:指定范圍內的任意單個字符? ?a|b: a或b。
2)輸入的是哪個變量,就執行哪個變量的分支??梢詫Ρ萾estsrv服務腳本。
3)case語句的變量引用多匹配于離散值比較方便代碼的編輯。記住:變量引用前面加$符號。
3、for語句(循環執行)
- 格式:
for? 變量名? in? 列表;do
循環體
done
- 特點:
1)依次將列表中的元素賦值給“變量名”; 每次賦值后即執行一次循環體; 直到列表中的元素耗盡,循環結束。
2)變量名是名稱不是變量引用,所以只寫變量的名字,不加$符號。
3)列表可以直接給出(空格隔開每個元素),也可以給出整數列表({1..100..1}或者seq 1 1 100),或者給出表達式(`ls /boot`),也可以使用通配符(/boot/*.sh),還可以是用位置參數引用($@,$*)
- 特殊用法:(雙小括號法)
for? i? in? ((i=1;i<=10;i++));do?
? ? ? ? 循環體
done
4、while語句(循環執行)
- 格式:
while? 循環控制條件;do
循環體
done
- 特點:
1)進入循環之前,先做一次判斷;每一次循環之后會再次做判斷;條件為“true”,則執行一次循環;直到條件測試狀態為“false”終止循環
2)因此:循環控制條件一般應該有循環控制變量;而此變量的值會在循環體不斷地被修正
3)進入條件:CONDITION為true 退出條件:CONDITION為false
- 特殊用法:
1)read讀取文件:一行一行的讀取文件賦值給參數line,進入循環體判斷
while? read? line ; do
? ? ? ? 循環體
done? <? /etc/passwd
2)read讀取命令執行結果:一行一行的讀取命令的執行結果賦值給參數line,進入循環體判斷
df? |? while? read? line ; do
? ? ? ? 循環體
done
5、until語句(循環執行)
- 格式:
while? 循環控制條件;do
循環體
done
- 特點:
1)while語句的循環控制條件取反,則執行結果相同;循環控制條件相同,則執行結果相反
2)進入條件: CONDITION 為false? ? ?退出條件: CONDITION 為true
6、continue [n]語句(循環控制)
- 格式:用于其他語句的循環體中,用來控制循環
- 特點:
1)提前結束第n層的本輪循環,轉而進入下一輪判斷,最內層為第一層
2)不會結束本層的循環,繼續執行!
7、break [n]語句(循環控制)
- 格式:用于其他語句的循環體中,用來控制循環
- 特點:
1)提前結束第n層的循環,最內層為第一層!
8、shift [n]命令(循環控制)
- 格式:同continue和break用法相同,用在其他語句的循環體中,用來控制循環
- 特點:
1)用于將參量列表 list 左移指定次數,缺省為左移一次。
2)參量列表 list 一旦被移動,最左端的那個參數就從列表中刪除。while 循環遍歷位置參量列表時,常用到 shift
9、select語句(循環與菜單)
- 格式:
select variable in list ; do
循環體命令
done
- 特點:
1)select 循環主要用于創建菜單,按數字順序排列的菜單項將顯示在標準錯誤上,并顯示 PS3 提示符,等待用戶輸入
2)用戶輸入菜單列表中的某個數字,執行相應的命令
3)用戶輸入被保存在內置變量 REPLY 中
4)select 是個無限循環,因此要記住用 break 命令退出循環,或用 exit 命令終止腳本。也可以按 ctrl+c 退出循環
5)select 經常和 case 聯合使用,與 for 循環類似,可以省略 in list,此時使用位置參量
10、trap工具(腳本執行信號捕捉)
- 格式:kill -l可以查詢信號列表
trap? ‘(COMMAND)’? 信號? ?:(執行COMMAND)不執行信號操作。
trap? ‘-‘? 信號? :恢復原信號操作
trap? -p? :腳本執行時列出自定義信號操作
- 特點:
1)用于腳本的執行,根據發出不同的信號然后來執行相應的操作。
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/98078