第七章實驗(三):while+case
一.while循環:
重複測試摸個條件,只要條件成立反覆執行。
條件可以是:測試表達式,也可以是布爾值true(條件永遠爲真)和false(條件永遠爲假)
[root@ns bin]# cat useradd_while.sh ##將下面腳本改寫爲新建用戶的腳本
#!/bin/bash
PRE=stu
i=0
while [ $i -le 10 ];do
#useradd $PRE$i
#echo 123123 |passwd --stdin $PRE$i
userdel -r $PRE$i
#i=$(expr $i + 1)
let i++
done
1.函數RANDOM、let、exit:
RANDOM是生成隨機數的一個函數。
[root@ns bin]# echo $RANDOM ##生成隨機數
[root@ns bin]# expr $RANDOM % 100 ##獲取100內的隨機數
27
[root@ns bin]# expr $RANDOM % 1000 ##獲取1000內的隨機數
336
let命令的作用是對變量進行自加減操作:
[root@ns bin]# i=1
[root@ns bin]# let i++
[root@ns bin]# echo $i
2
[root@ns bin]# let ++i
[root@ns bin]# echo $i
3
[root@ns bin]# let i--
[root@ns bin]# echo $i
2
[root@ns bin]# expr $i + 1
綜合應用:
[root@ns bin]# cat price_guess.sh
#!/bin/bash
PRICE=$(expr $RANDOM % 1000)
TMS=0
echo "please insert a number like this(1-999)"
while true;do
read -p "please give number:" INT
let TMS++
if [ $INT -eq $PRICE ];then
echo "your luckly. right! "
echo "Your guess $TMS"
exit 0
elif [ $INT -gt $PRICE ];then
echo "Too High,try a again. "
else
echo "Too low,try a again."
fi
done
2.區分exit,break
exit退出程序(腳本),break只是退出循環體。
[root@ns bin]# cat die_while.sh
#!/bin/bash
i=0
j=$(expr $RANDOM % 10)
while true;do
echo $i
let i++
sleep 1 ##休眠1秒避免死循環產生
if [ $i -eq $j ];then
echo "ok,$j random"
break ##將break替換爲exit執行後查看效果
fi
done
df -hT
[root@ns bin]#