天天看點

Shell 程式設計進階(二)while循環循環控制語句continue循環控制語句break循環控制指令shift建立無限循環select循環與菜單

文法格式:

CONDITION:循環控制條件;進入循環之前,先做一次判斷;每一次循環之後會再次做判斷;條件為“ true”,則執行一次循環;直到條件測試狀态為“ false”終止循環

 是以:CONDTION一般應該有循環控制變量;而此變量的值

會在循環體不斷地被修正

bash内置了2個指令,直接傳回成功與不成功的狀态。可以用來做無限循環相關操作。

來一個執行個體,檢測httpd的服務,如果httpd程序沒有啟動,則重新開機此服務。這是一個無限循環的腳本

文法格式

示例

while(周遊檔案的每一行)

read的其他用法:

 用于循環體中

 continue [N]:提前結束第N層的本輪循環,而直接進入下一輪判斷;最内層為第1層。N預設為1

 break [N]:提前結束第N層循環;最内層為第1層。N預設為1

運作結果

文法格式:

如果想改變#?的提示方式,那就需要修改PS3内置變量的值

執行個體

利用select 菜單周遊

以下練習題之前是用for循環來完成,現在可以用while循環來編寫

1、 編寫腳本,求100以内所有正奇數之和(用while)

2、 編寫腳本,提示請輸入網絡位址,如192.168.0.0,判斷輸入的網段中主機線上狀态,并統計線上和離線主機各多少(用while)

3、 編寫腳本,列印九九乘法表(用while)

4、 編寫腳本,利用變量RANDOM生成10個随機數字,輸出這個10數字,并顯示其中的最大值和最小值(用while)

5、編寫腳本,實作列印國際象棋棋盤(用while)

6、這6個字元串:efbaf275cd、 4be9c40b8b、44b2395c46、 f8c8873ce0、 b902c16c8b、 ad865d2f63是通過對随機數變量RANDOM随機執行指令:echo $RANDOM|md5sum|cut –c1-10 後的結果,請破解這些字元串對應的RANDOM值(用while)

7、編寫自動将遠端IP數量連接配接數超過一定值的IP列入iptables拒絕範圍(用while)

8、掃描/etc/passwd檔案每一行,如發現GECOS字段為空,則填充使用者名和機關電話為00000000,并提示該使用者的GECOS資訊修改成功。(測試前,注意備份/etc/passwd)

9、編寫腳本,監控磁盤超過一定閥值時顯示消息

運作結果:

10、每隔3秒鐘到系統上擷取已經登入的使用者的資訊;如果發現使用者hacker登入,則将登入時間和主機記錄于日志/var/log/login.log中,并退出腳本

11、随機生成10以内的數字,實作猜字遊戲,提示比較大或小,相等則退出

12、用檔案名做為參數,統計所有參數檔案的總行數

13、用二個以上的數字為參數,顯示其中的最大值和最小值

版權聲明:原創作品,如需轉載,請注明出處。否則将追究法律責任

本文轉自 ljpwinxp 51CTO部落格,原文連結:http://blog.51cto.com/191226139/2056324