while條件循環語句

這是一種讓腳本根據某些條件來重複執行命令的條件循環語句,而這種循環結構往往在執行前並不確定最終執行的次數,完全不同於for循環語句中有目的、有範圍的使用場景。而while循環語句判斷是否繼續執行命令的依據一般是檢查若條件爲真就繼續執行,而條件爲假就結束循環。詳情請關注《linux就該這麼學》。

操作方法

(01)循環結構如圖所示:接下來就來利用多重分支的if條件測試語句與while條件循環語句來結合寫一個用來判斷數值的腳本吧,腳本中會使用$RANDOM變量來調取出一個隨機的數值(範圍:0--32767),然後通過expr命令計算取整出1000以內的一個隨機數值,用這個數值來跟用戶通過read命令輸入的數值做比較判斷。判斷語句結構分爲三項,分別是判斷是否相等、是否大於隨機值以及是否小於隨機值,但這不是重點~關鍵是在於while條件循環語句的判斷值爲true,因此會無限的運行下去,直到猜中後運行exit 0命令才終止腳本。

while條件循環語句

(02)[root@linuxprobe ~]# vim #!/bin/bashPRICE=$(expr $RANDOM % 1000)TIMES=0echo "商品實際價格爲0-999之間,猜猜看是多少?"while truedoread -p "請輸入您猜測的價格數目:" INTlet TIMES++if [ $INT -eq $PRICE ] ; thenecho "恭喜您答對了,實際價格是 $PRICE"echo "您總共猜測了 $TIMES 次"exit 0elif [ $INT -gt $PRICE ] ; thenecho "太高了!"elseecho "太低了!"fidone

(03)通過給腳本加上解釋說明後整個內容開始變得豐滿起來,互動感也變得很強,每當循環到let TIMES++這個命令時都會讓TIMES變量內數值加上1,這樣用來統計總共循環次數的功能更是畫龍點睛,讓操作者可以知道猜對價格最終使用了幾次機會。[root@linuxprobe ~]# bash 商品實際價格爲0-999之間,猜猜看是多少?請輸入您猜測的價格數目:500太低了!請輸入您猜測的價格數目:800太高了!請輸入您猜測的價格數目:650太低了!請輸入您猜測的價格數目:720太高了!請輸入您猜測的價格數目:690太低了!請輸入您猜測的價格數目:700太高了!請輸入您猜測的價格數目:695太高了!請輸入您猜測的價格數目:692太高了!請輸入您猜測的價格數目:691恭喜您答對了,實際價格是 691您總共猜測了 9 次