while和for的區(qū)別:
for語句非常適合用于列表對(duì)象無規(guī)律,且列表來源是固定的場合
while對(duì)于要求控制循環(huán)次數(shù)、操作對(duì)象按數(shù)字順序編號(hào),按特定條件執(zhí)行重復(fù)操作。
重復(fù)測(cè)試某個(gè)條件時(shí),只要條件成立就會(huì)反復(fù)執(zhí)行(無限),除非強(qiáng)制終止,或者exit語句退出腳本
格式:
while 條件測(cè)試操作(判斷語句)
do
命令序列
done
應(yīng)用領(lǐng)域
1、批量添加用戶
#!/bin/bash
U="student" //名稱
i=1 //默認(rèn)從一開始
while [ $i -le 10 ] //循環(huán)十次
do
useradd $U$i
echo 123 | passwd --stdin $U$i &> /dev/null 設(shè)置密碼為123并將結(jié)果輸出至黑洞
let i++ //依次遞增
done
until [ $i -gt 10 ]
do
useradd $U$i
echo 123 | passwd --stdin $U$i &> /dev/null
let i++
done
在/opt目錄下創(chuàng)建while01.sh
寫入一下腳本
完成后保存退出為文件添加執(zhí)行權(quán)限并啟動(dòng)如下圖
第一遍運(yùn)行是不會(huì)顯示的我這是第二遍運(yùn)行,第一遍運(yùn)行若為報(bào)錯(cuò)可以cat /etc/passwd查看
2.交互式批量創(chuàng)建用戶:
#!/bin/bash
read -p "請(qǐng)輸入要?jiǎng)?chuàng)建用戶的前綴:" X
read -p "請(qǐng)輸入要?jiǎng)?chuàng)建用戶的個(gè)數(shù):" M
read -p "請(qǐng)輸入用戶的初始密碼:" N
i=1
while [ $i -le $M ] //要?jiǎng)?chuàng)建用戶的個(gè)數(shù)
do
useradd $X$i
echo "$N" | passwd --stdin $X$i &> /dev/null //密碼
chage -d 0 $X$i //第一次登陸強(qiáng)制修改密碼
let i++
done
再創(chuàng)建wheil02.sh輸入一下內(nèi)容
保存退出后添加執(zhí)行權(quán)限運(yùn)行
到cat /etc/passwd中查看是否創(chuàng)建完成
強(qiáng)制修改密碼可以到虛擬機(jī)中嘗試一下如下圖
這樣就強(qiáng)制修改了.
3、猜價(jià)格游戲
#!/bin/bash
P=$(($RANDOM%1000))
T=0
echo "商品實(shí)際價(jià)格范圍0~999,請(qǐng)猜猜看是多少?"
while true
do
read -p "請(qǐng)輸入你猜測(cè)的價(jià)格數(shù)目:" INT
let T++
if [ $INT -eq $P ];then
echo "恭喜答對(duì)了,實(shí)際價(jià)格是$P"
echo "你總共猜測(cè)了$T次"
exit 0
elif [ $INT -gt $P ];then
echo "太高了"
else
echo "太低了"
fi
done
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。