shell腳本--------while循環語句

while和for的區別:
for語句非常適合用於列表對象無規律,且列表來源是固定的場合

while對於要求控制循環次數、操作對象按數字順序編號,按特定條件執行重複操作。

重複測試某個條件時,只要條件成立就會反覆執行(無限),除非強制終止,或者exit語句退出腳本

格式:
while   條件測試操作(判斷語句)
do
    命令序列
done

應用領域
1、批量添加用戶
#!/bin/bash

U="student"            //名稱
i=1                        //默認從一開始
while [ $i -le 10 ]   //循環十次
do
        useradd $U$i
        echo 123 | passwd --stdin $U$i &> /dev/null     設置密碼爲123並將結果輸出至黑洞
        let i++                     //依次遞增
done

until [ $i -gt 10 ]
do
        useradd $U$i
        echo 123 | passwd --stdin $U$i &> /dev/null
        let i++
done

在/opt目錄下創建while01.sh
寫入一下腳本
在這裏插入圖片描述
完成後保存退出爲文件添加執行權限並啓動如下圖
在這裏插入圖片描述
第一遍運行是不會顯示的我這是第二遍運行,第一遍運行若爲報錯可以cat /etc/passwd查看
在這裏插入圖片描述
2.交互式批量創建用戶:

#!/bin/bash
read -p "請輸入要創建用戶的前綴:" X
read -p "請輸入要創建用戶的個數:" M
read -p "請輸入用戶的初始密碼:" N
i=1
while [ $i -le $M ]      //要創建用戶的個數
do
        useradd $X$i
        echo "$N" | passwd --stdin $X$i &> /dev/null    //密碼
        chage -d 0 $X$i     //第一次登陸強制修改密碼
        let i++
done

再創建wheil02.sh輸入一下內容
在這裏插入圖片描述
保存退出後添加執行權限運行
在這裏插入圖片描述
到cat /etc/passwd中查看是否創建完成
在這裏插入圖片描述
強制修改密碼可以到虛擬機中嘗試一下如下圖
在這裏插入圖片描述
這樣就強制修改了.

3、猜價格遊戲

#!/bin/bash
P=$(($RANDOM%1000))
T=0
echo "商品實際價格範圍0~999,請猜猜看是多少?"

while true
do
        read -p "請輸入你猜測的價格數目:" INT
        let T++
        if [ $INT -eq $P ];then
                echo "恭喜答對了,實際價格是$P"
                echo "你總共猜測了$T次"
                exit 0
        elif [ $INT -gt $P ];then
                echo "太高了"
        else
                echo "太低了"
        fi
done

在這裏插入圖片描述

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