一、循環中的常見語句
1.1?echo
?打印
-n
?:表示不換行輸出-e
?:輸出轉義字符\b
?:相當于退格鍵(backspace)\n
?:換行,相當于回車\f
?:換行,換行后的新行的開頭連著上一行的行尾\t
?:插入一個tab
鍵,橫向制表符,相當于一個大空格鍵
1.2 循環控制語句
break :跳出當前循環并終止
continue:跳出當前循環,如果條件仍滿足,繼續執行循環
exit:滿足條件,立即退出腳本
對于多層循環,在內層循環使用break、continue只是跳出當前層的循環,如果想要跳出多層循環,可以在break、continue后加上跳出的層數,比如要跳出雙循環可用break 2 ,continue 2。
?
1.3?while
?和?until
?的用法
while
滿足條件就執行循環,不滿足條件才會退出。
while
適用場景:死循環,不知道循環多少次,需要主動結束循環或者達到條件才結束循環
死循環:三種格式
while true
?#永遠為真,即死循環while [ 1 -eq 1 ]
?#相當于true,[ ]
里是一個永遠為真的條件while :
until
循環:條件不滿足才執行循環,一旦條件成立,循環終止。即執行命令直到滿足until
的條件才終止。
二、練習
- 用戶名存放在users.txt文件中,每行一個。判斷文件里的用戶名是否存在。
如果用戶存在,提示用戶已存在
如果用戶存在,但是沒有設置密碼,要提示用戶設置密碼
如果用戶不存在,創建用戶,然后給用戶創建密碼。
2、測試一個網段,C類私有地址,32位的網段,測試可以ping通的地址,保留到/opt/hosts.txt;如果不通,提示不通即可。
wait表示等待當前 Shell 中所有在前臺或后臺運行的子進程(包括通過 & 啟動的后臺任務)完成后再返回
3、購物例題:
逛淘寶選購商品,每家商店有五種商品選購(衣服500元,褲子400元,鞋子350元,帽子150元,襪子50元),每次選購完或不買都會提示用戶是否繼續逛下一家商店,如果不再繼續逛的話進行購物車結算總額。
驗證
4、某山頂上有一顆香蕉樹,一只猴子第一天從樹上摘了若干根香蕉,當即就吃了一半,還不過癮,又多吃了一根。第二天猴子又將剩下的香蕉吃了一半,禁不住誘惑,又多吃了一根香蕉。
依此類推,每天都將剩余的香蕉吃一半后再多吃一根。到了第十天,猴子發現只剩一根香蕉了,
請問這只猴子在第一天總共摘了多少根香蕉?
?驗證