天天看點

shell腳本(三)while循環語句

理論部分:

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

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

while循環語句的運作過程

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

while會出現死循環的過程,是以循環體内的指令序列内應包括修改測試條件的語句

while語句的文法結構:

shell腳本(三)while循環語句
shell腳本(三)while循環語句

注意:

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

執行的結果

shell腳本(三)while循環語句

檢驗:

shell腳本(三)while循環語句
shell腳本(三)while循環語句

也可以使用while循環删除

vim userdel.sh

    userdel -r   ${user}$i &> /dev/null

    echo "${user}$i Users to del success"

執行結果

shell腳本(三)while循環語句

實戰2

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

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

例如:

shell腳本(三)while循環語句

vim caijiage.sh

price=$(expr $RANDOM % 1000)

times=0

echo "The prices of the goods is 0-999,Can you guess what is?"

while true

     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 ]

    echo "Is too high "

   else

    echo "It's too low "

  fi

執行腳本的結果

繼續閱讀