文章目錄
- 前言
- 一、for回圈
- for陳述句結構
- 例題:
- 二、while回圈
- 1、while陳述句結構
- 例題:
- 三、until回圈
- 1、until陳述句結構
- 例題:
- 四、常用轉義字符
- 五、例題:購物
前言
腳本執行任務的時候總會遇到需要重復執行的時候,為了節省資源,除了計劃任務,我們還可以使用腳本來完成,接下來就是Shell腳本中的三種回圈,
一、for回圈
for回圈,又有人稱之為條件回圈,或者for i in ,其實就是for回圈的特性,次數和給與的條件是成正比的
for陳述句結構
讀取不同的變數值,用來逐個執行同一組命令
for 變數名 in 取值串列
do
命令序列
done

例題:
1、提示用戶輸入一個小于100的整數,并計算從1到該數之間所有整數的和,


2、求1到該數的奇數和,偶數和


3、批量添加用戶
用戶名存放在users.txt檔案中,每行一個
初始密碼均為123456
驗證





4、根據IP地址檢查主機狀態
IP地址存放在ipadds.txt檔案中,每行一個
使用ping命令檢查各主機的連通性
這題基本和上題一樣的



二、while回圈
只要條件成立,則反復回圈,不成立即停止
1、while陳述句結構
while 條件測驗操作
do
命令序列
done

例題:
1、計算從1到100所有整數的和


2、提示用戶輸入一個小于100的整數,并計算從1到該數之間所有整數的和


3、批量添加用戶
用戶名以qqq開頭,按數字順序進行編號
一共1-20,添加20個用戶
初始密碼均設為123456


三、until回圈
重復測驗某個條件,只要條件不成立則反復回圈
1、until陳述句結構
until 條件測驗操作
do
命令序列
done

例題:
1、計算1~50的和



四、常用轉義字符
echo -n 表示不換行輸出
echo -e 輸出轉義字符,將轉義后的內容輸出到螢屏上
常用的轉義字符如下: \b 轉義后相當于按退格鍵(backspace),但前提是"\b"后面存在字符;"\b"表示洗掉前一個字符,"\b\b"表示洗掉前兩個字符,
\c 不換行輸出,在"\c"后面不存在字符的情況下,作用相當于 echo -n; 但是當"\c"后面仍然存在字符時,"\c"后面的字符將不會被輸出,
\n 換行,被輸出的字符從"\n"處開始另起一行,
\f 換行,但是換行后的新行的開頭位置連接著上一行的行尾;
\v 與\f相同;
\t 轉以后表示插入tab,即橫向制表符;
\r 游標移至行首,但不換行,相當于使用"\r"以后的字符覆寫"\r"之前同等長度的字符;但是當"\r"后面不存在任何字符時,"\r"前面的字符不會被覆寫
\\ 表示插入"\"本身;
五、例題:購物
逛淘寶選購商品,每家商店有五種商品選購(衣服500元,褲子400元,鞋子350元,帽子150元,襪子50元),每次選購完或不買都會提示用戶是否繼續逛下一家商店,如果不再繼續逛的話進行購物車結算總額,
[root@promote opt]#vim shopping.sh
#!/bin/bash
#每家商店有五種商品選購,每次選購完或不買都會提示用戶是否繼續逛下一家商店,如果不再繼續逛的話進行購物車結算總額,
#衣服500元
#褲子400元
#鞋子300元
#帽子150元
#襪子50元
sum=0
for ((;;))
do
echo "1、衣服:500元"
echo "2、褲子:400元"
echo "3、鞋子:300元"
echo "4、帽子:150元"
echo "5、襪子:50元"
read -p "請選擇您想要購買的商品:" a
case $a in
1)
echo "您已購買了衣服500元"
let sum+=500
;;
2)
echo "您已購買了褲子400元"
let sum+=400
;;
3)
echo "您已購買了鞋子300元"
let sum+=300
;;
4)
echo "您已購買了帽子150元"
let sum+=150
;;
5)
echo "您已購買了襪子50元"
let sum+=50
;;
*)
echo "歡迎下次光臨,您本次消費共計$sum元"
break
esac
read -p "您選擇繼續購物還是結算購物車?(y/n)" b
if [ $b = y ] ; then
continue
elif [ $b = n ] ; then
echo "歡迎下次光臨,您本次購物共計消費$sum元"
break
else
echo "請您正確輸入"
fi
done

這個題,圖有點長,我就不貼了,各位可以把我的命令復制拿去整理一下看看,看能否再進行完善,而且,這題使用while和until做成死回圈,配合continue和break也是一樣的效果,case和if陳述句的使用看個人喜好
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/238000.html
標籤:其他
上一篇:分布式部署Zabbix監控平臺
