理論部分:vim
循環的意思就是讓程序重複地執行某些語句;bash
whiler循環就是循環結構的一種,當事先不知道循環該執行多少次,就要用到while循環;ide
while循環語句的運行過程測試
使用while循環語句時,能夠根據特定的條件反覆執行一個命令,直到條件不知足爲止;spa
while會出現死循環的過程,所以循環體內的命令序列內應包括修改測試條件的語句設計
while語句的語法結構:3d
注意:blog
使用while循環語句時,有兩個特殊的條件測試操做即true(真)和false(假);ip
使用true時表示條件永遠成立,循環體內的命令序列將會無限執行下去,除非強制終止腳本或使用exit退出腳本;get
反之使用false時循環體將不會被執行; ’這兩個特殊條件也能夠用在if語句的條件測試中
應用實例
使用while語句執行批量添加規範的用戶
stu 1 stu 2…….
咱們也能夠使用while批量添加用戶,可是前提是用戶的命名必須有規範,有規律不然沒法使用while進行建立
vim useradd.sh
#!/bin/bash
user="stu"
i=1
while [ $i -le 20 ]
do
useradd ${user}$i
echo "123456" | passwd --stdin ${user}$i &>/dev/null
echo "${user}$i Users to add success"
let i++
done
首先定義一個用戶名的前綴爲stu
在定義一個變量用於改變條件
while 當$i 小於等於20 的時候執行下面的命令序列 let i++ 表示每循環一次i的值加1
當循環到21次的時候這個測試條件不成立了,由於21不小於等於20因此直接調到done結束循環
執行的結果
檢驗:
也能夠使用while循環刪除
vim userdel.sh
#!/bin/bash
user="stu"
i=1
while [ $i -le 20 ]
do
userdel -r ${user}$i &> /dev/null
echo "${user}$i Users to del success"
let i++
done
執行結果
實戰2
針對上訴要求主要設計思路以下
if經過變量RANDOM可得到一個小於2十六次方的隨機整數,計算其與1000的餘數便可得到0~999的隨機價格,反覆操做能夠經過true做爲測試條件,在用戶猜出實際價格爲止,判斷猜想價格與實際價格的過程使用if語句實現,嵌套在while循環內使用變量來計算猜想的次數
vim caijiage.sh
#!/bin/bash
price=$(expr $RANDOM % 1000)
times=0
echo "The prices of the goods is 0-999,Can you guess what is?"
while true
do
read -p "Please enter your price:" INT
let times++
if [ $INT -eq $price ]
then
echo "Good you guessed it"
echo "You guess the total $times times "
exit 0
elif
[ $INT -gt $price ]
then
echo "Is too high "
else
echo "It's too low "
fi
done
執行腳本的結果
學會for while已經能夠編寫一些腳本完成簡單的系統管理任務了。