shell腳本(三)while循環語句

理論部分:

循環的意思就是讓程序重複地執行某些語句;

whiler循環就是循環結構的一種,當事先不知道循環該執行多少次,就要用到while循環;

while循環語句的運行過程

使用while循環語句時,可以根據特定的條件反覆執行一個命令,直到條件不滿足爲止;

while會出現死循環的過程,因此循環體內的命令序列內應包括修改測試條件的語句

while語句的語法結構:

image

image

注意:

使用while循環語句時,有兩個特殊的條件測試操作即true(真)和false(假);

使用true時表示條件永遠成立,循環體內的命令序列將會無限執行下去,除非強制終止腳本或使用exit退出腳本;

反之使用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結束循環

執行的結果

image

檢驗:

image

image

也可以使用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

執行結果

clip_image002

實戰2

針對上訴要求主要設計思路如下

if通過變量RANDOM可獲得一個小於2十六次方的隨機整數,計算其與1000的餘數即可獲得0~999的隨機價格,反覆操作可以通過true作爲測試條件,在用戶猜出實際價格爲止,判斷猜測價格與實際價格的過程使用if語句實現,嵌套在while循環內使用變量來計算猜測的次數


例如:image

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

執行腳本的結果

clip_image002[4]

學會for while已經可以編寫一些腳本完成簡單的系統管理任務了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章