1. 程式人生 > >shell腳本--------while循環語句

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

true bash 報錯 echo 命令 改密 color 修改密碼 roc

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

技術分享圖片

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