SHELL_編程的循環(huán)語句

一、for循環(huán)語句

1. for循環(huán)語法結(jié)構(gòu)

列表for循環(huán):用于將一組命令執(zhí)行 已知的次數(shù)

基本語法格式
圖片.png
舉例說明
圖片.png
㈡ 不帶列表循環(huán)

不帶列表的for循環(huán)執(zhí)行時由用戶指定參數(shù)和參數(shù)的個數(shù)

基本語法格式
圖片.png
舉例說明
圖片.png
㈢ 類C風(fēng)格的for循環(huán)
基本語法結(jié)構(gòu)
圖片.png
舉例說明
圖片.png

2. 應(yīng)用案例

㈠ 腳本==計算==1-100奇數(shù)和
① 思路
  1. 定義一個變量來保存奇數(shù)的和 ==sum===0
  2. 找出1-100的奇數(shù),保存到另一個變量里 ==i===遍歷出來的奇數(shù)
  3. 從1-100中找出奇數(shù)后,再相加,然后將和賦值給變量 循環(huán)變量 for
  4. 遍歷完畢后,將sum的值打印出來
② 落地實現(xiàn)
圖片.png

x

圖片.png

圖片.png

圖片.png
③ 循環(huán)控制語句

do....done==之間的內(nèi)容

  • continue:繼續(xù);表示==循環(huán)體==內(nèi)下面的代碼不執(zhí)行,重新開始下一次循環(huán)
  • break:打斷;馬上停止執(zhí)行本次循環(huán),執(zhí)行==循環(huán)體==后面的代碼
  • exit:表示直接跳出程序


    圖片.png
㈡ 判斷所輸整數(shù)是否為質(zhì)數(shù)

質(zhì)數(shù)(素數(shù)):只能被1和它本身整除的數(shù)叫質(zhì)數(shù)。

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

① 思路
  1. 讓用戶輸入一個數(shù),保存到一個變量里
    . 如果能被其他數(shù)整除就不是質(zhì)數(shù)——>num%i是否等于0 i=2到num-1
  2. 如果輸入的數(shù)是1或者2取模根據(jù)上面判斷又不符合,所以先排除1和2
  3. 測試序列從2開始,輸入的數(shù)是4——>得出結(jié)果num不能和i相等,并且num不能小于i
② 落地實現(xiàn)
圖片.png
㈢ 批量創(chuàng)建用戶

需求:批量加5個新用戶,以u1到u5命名,并統(tǒng)一加一個新組,組名為class,統(tǒng)一改密碼為123

① 思路
  1. 添加用戶的命令
  2. 判斷class組是否存在
  3. 根據(jù)題意,判斷該腳本循環(huán)5次來添加用戶
  4. 給用戶設(shè)置密碼,應(yīng)該放到循環(huán)體里面
② 落地實現(xiàn)
圖片.png

圖片.png

圖片.png

3.練習(xí)

㈠ 批量創(chuàng)建用戶

需求1:批量新建5個用戶stu1~stu5,要求這幾個用戶的家目錄都在/rhome.


圖片.png
㈡ 局域網(wǎng)內(nèi)腳本檢查主機網(wǎng)絡(luò)通訊

需求2:

寫一個腳本,局域網(wǎng)內(nèi),把能ping通的IP和不能ping通的IP分類,并保存到兩個文本文件里

以10.1.1.1~10.1.1.10為例


圖片.png
延伸擴展:shell腳本并發(fā)
圖片.png
㈢ 判斷閏年

需求3:

輸入一個年份,判斷是否是潤年(能被4整除但不能被100整除,或能被400整除的年份即為閏年)


圖片.png
總結(jié)
  • FOR循環(huán)語法結(jié)構(gòu)
  • FOR循環(huán)可以結(jié)合條件判斷和流程控制語句
    • do ......done 循環(huán)體
    • 循環(huán)體里可以是命令集合,再加上條件判斷以及流程控制
  • 控制循環(huán)語句
    • continue 繼續(xù),跳過本次循環(huán),繼續(xù)下一次循環(huán)
    • break 打斷,跳出循環(huán),執(zhí)行循環(huán)體外的代碼
    • exit 退出,直接退出程序

二、while循環(huán)語句

特點:==條件為真就進入循環(huán);條件為假就退出循環(huán)==

1. while循環(huán)語法結(jié)構(gòu)
圖片.png
循環(huán)打印1-5數(shù)字
圖片.png
2. 應(yīng)用案例
㈠ 腳本計算1-50偶數(shù)和
圖片.png
㈡ 腳本同步系統(tǒng)時間
① 具體需求
  1. 寫一個腳本,30秒同步一次系統(tǒng)時間,時間同步服務(wù)器10.1.1.1
  2. 如果同步失敗,則進行郵件報警,每次失敗都報警
  3. 同步成功,也進行郵件通知,但是成功100次才通知一次
② 思路
  1. 每個30s同步一次時間,該腳本是一個死循環(huán)
  2. 同步失敗發(fā)送郵件
  3. 同步成功100次發(fā)送郵件
③ 落地實現(xiàn)
圖片.png

三、until循環(huán)

特點:==條件為假就進入循環(huán);條件為真就退出循環(huán)==

1. until語法結(jié)構(gòu)

圖片.png
打印1-5數(shù)字
圖片.png

2. 應(yīng)用案例

㈠ 具體需求
  1. 使用until語句批量創(chuàng)建10個用戶,要求stu1—stu5用戶的UID分別為1001—1005;
  2. stu6~stu10用戶的家目錄分別在/rhome/stu6—/rhome/stu10
㈡落地實現(xiàn)
圖片.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容