while,until,select循環
case分支選擇結構:
case 詞 in [模式 [| 模式]...) 命令 ;;]... esac
case 變量引用 in
模式1)
分支1
;;
模式2)
分支2
;;
...
*)
默認分支
;;
esac
模式(PATTERN):
1.普通的文本字符
2.globbing風格的通配符:
*:任意長度任意字符
?:任意的單個字符
[]:範圍內的任意單個字符
[^]:範圍外的任意單個字符
3.|:或
if的多分支結構和case的分支結構之間的區別:
相同點:
1.都是條件為真,執行對應分支的語句;條件為假,就不執行;
2.都可以設置默認分支語句,即:所有條件都不匹配的時候,所執行的語句;
不同點:
1.if是根據命令的執行狀態返回值來判斷正確與否;case是根據變量的值的取值內容是否匹配模式來判斷正確與否;
2.case的每個分支都必須使用‘;;‘結束;
while
while 命令; do 命令; done
while CONDITION ; do
循環體
done
進入循環條件:CONDITION一直為真;
退出循環條件:CONDITION為假;
until
until 命令; do 命令; done
until CONDITION ; do
循環體
done
進入循環條件:CONDITION一直為假;
退出循環條件:CONDITION為真;
while CONDITION ; do CMD ; done
until ! CONDITION ; do CMD ; done
註意:對於while和until兩個循環結構來講,如果要實施變量增量操作,必須手動給出;
循環控制語句:
continue
break
continue:
continue [n]
提前結束第n層的本次循環,直接進入下一輪條件判斷,若符合循環進入條件,則開啟下一輪循環;
break:
break [n]
提前技術第n層循環;不再繼續後續循環;
無限循環用法:
while true ; do
循環體
done
until false ; do
循環體
done
在此類的循環結構中,必須適當的使用continue和break,以保證循環不會一直持續下去;
能夠實現遍歷功能的while循環和until循環;
while read LINES ; do
循環體
done < /PATH/FROM/SOMEFILE
until ! read LINES ; do
循環體
done < /PATH/FROM/SOMEFILE
select
select循環主要用於創建一個菜單式列表,供用戶進行選擇;
列表是按照數字順序排列的,我們只要選擇數字即可;
一般來講,select與case一起使用;
select是一個無限循環結構,因此,必須在循環體中使用break命令以退出循環,或者可以使用exit命令直接終止腳本運行;
select NAME [in 詞語 ... ;] do 命令; done
select NAME [in LIST] ; do
命令
done
while,until,select循環