一、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ù)的個(gè)數(shù)
基本語法格式
圖片.png
舉例說明
圖片.png
㈢ 類C風(fēng)格的for循環(huán)
基本語法結(jié)構(gòu)
圖片.png
舉例說明
圖片.png
2. 應(yīng)用案例
㈠ 腳本==計(jì)算==1-100奇數(shù)和
① 思路
- 定義一個(gè)變量來保存奇數(shù)的和 ==sum===0
- 找出1-100的奇數(shù)爱态,保存到另一個(gè)變量里 ==i===遍歷出來的奇數(shù)
- 從1-100中找出奇數(shù)后谭贪,再相加,然后將和賦值給變量 循環(huán)變量 for
- 遍歷完畢后锦担,將sum的值打印出來
② 落地實(shí)現(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ù)(素?cái)?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
① 思路
- 讓用戶輸入一個(gè)數(shù)痘煤,保存到一個(gè)變量里
. 如果能被其他數(shù)整除就不是質(zhì)數(shù)——>i是否等于0
num-1
- 如果輸入的數(shù)是1或者2取模根據(jù)上面判斷又不符合凑阶,所以先排除1和2
- 測試序列從2開始,輸入的數(shù)是4——>得出結(jié)果
i相等衷快,并且
i
② 落地實(shí)現(xiàn)
圖片.png
㈢ 批量創(chuàng)建用戶
需求:批量加5個(gè)新用戶宙橱,以u(píng)1到u5命名,并統(tǒng)一加一個(gè)新組蘸拔,組名為class,統(tǒng)一改密碼為123
① 思路
- 添加用戶的命令
- 判斷class組是否存在
- 根據(jù)題意师郑,判斷該腳本循環(huán)5次來添加用戶
- 給用戶設(shè)置密碼,應(yīng)該放到循環(huán)體里面
② 落地實(shí)現(xiàn)
圖片.png
圖片.png
圖片.png
3.練習(xí)
㈠ 批量創(chuàng)建用戶
需求1:批量新建5個(gè)用戶stu1~stu5调窍,要求這幾個(gè)用戶的家目錄都在/rhome.
圖片.png
㈡ 局域網(wǎng)內(nèi)腳本檢查主機(jī)網(wǎng)絡(luò)通訊
需求2:
寫一個(gè)腳本宝冕,局域網(wǎng)內(nèi),把能ping通的IP和不能ping通的IP分類邓萨,并保存到兩個(gè)文本文件里
以10.1.1.1~10.1.1.10為例
圖片.png
延伸擴(kuò)展:shell腳本并發(fā)
圖片.png
㈢ 判斷閏年
需求3:
輸入一個(gè)年份地梨,判斷是否是潤年(能被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)語句
特點(diǎn):==條件為真就進(jìn)入循環(huán)赖钞;條件為假就退出循環(huán)==
1. while循環(huán)語法結(jié)構(gòu)
圖片.png
循環(huán)打印1-5數(shù)字
圖片.png
2. 應(yīng)用案例
㈠ 腳本計(jì)算1-50偶數(shù)和
圖片.png
㈡ 腳本同步系統(tǒng)時(shí)間
① 具體需求
- 寫一個(gè)腳本腰素,30秒同步一次系統(tǒng)時(shí)間,時(shí)間同步服務(wù)器10.1.1.1
- 如果同步失敗仁烹,則進(jìn)行郵件報(bào)警,每次失敗都報(bào)警
- 同步成功,也進(jìn)行郵件通知,但是成功100次才通知一次
② 思路
- 每個(gè)30s同步一次時(shí)間耸弄,該腳本是一個(gè)死循環(huán)
- 同步失敗發(fā)送郵件
- 同步成功100次發(fā)送郵件
③ 落地實(shí)現(xiàn)
圖片.png
三、until循環(huán)
特點(diǎn):==條件為假就進(jìn)入循環(huán)卓缰;條件為真就退出循環(huán)==
1. until語法結(jié)構(gòu)
圖片.png
打印1-5數(shù)字
圖片.png
2. 應(yīng)用案例
㈠ 具體需求
- 使用until語句批量創(chuàng)建10個(gè)用戶计呈,要求stu1—stu5用戶的UID分別為1001—1005;
- stu6~stu10用戶的家目錄分別在/rhome/stu6—/rhome/stu10
㈡落地實(shí)現(xiàn)
圖片.png