1、 shell中的迴圈語句
迴圈語句,主要是為了簡化重複動作**,在運維方面主要用於重複某項動作,例如批量建立使用者,在shell中主要有兩種 while迴圈 與 for 迴圈。
1、while迴圈
while 迴圈主要用於無限次的迴圈情況,例如登入認證,你不知道多少次可以登入成功,當然可以認為限制登入次數。
1.1、while迴圈 的結構
#!/bin/bash
while true
do echo "哈哈哈哈哈哈哈哈哈" #迴圈體
done
1.2、 while迴圈指令碼示例
1)、while迴圈從檔案讀取使用者,增加使用者,並且設定密碼。
1、建立使用者檔案
[root@localhost ~]# cat >123.txt<<-eof
love1
love2
love3
love4
love5
eof2、while 指令碼
#!/bin/bash
rm -rf info.txt &>/dev/null
while read user
do id $user &>/dev/null
if [ $? -ne 0 ];then
useradd $user &>/dev/null
pwd=`mkpasswd -l 10`
echo $pwd | passwd --stdin $user &>/dev/null
echo "$user:$pwd"|tee -a info.txt
echo " 使用者 $user 新增成功..."
else
echo "$user 已經存在..."
fidone<123.txt
2)批量新增指定字首,數量的使用者
#!/bin/bash
read -p "請輸入使用者字首,密碼,數量:" pre pass num
if [[ ! $num =~ ^[0-9]+ ]];then
ehco "請輸入數字"
ficat if [ $? -ne 0 ];then
useradd $pre$i
echo "使用者 $pre$i 建立成功..."
echo $pass|passwd --stdin $pre$i &>/dev/null
else
continue
echo "使用者 $pre$i 已經存在..."
fidone
break
;;n|no)
exit 1
;;*) echo "錯誤輸入,請重新輸入..."
esac
done
3)、批量刪除使用者
#!/bin/bash
read -p "請輸入使用者字首,數量:" pre num
cat if [ $? -eq 0 ];then
userdel -r $pre$i
echo "使用者 $pre$i 刪除成功..."
else
continue
echo "使用者 $pre$i 不存在..."
fidone
break
;;n|no)
exit 1
;;*) echo "錯誤輸入,請重新輸入..."
esac
done
2、for 迴圈
for 迴圈主要用於有限次數迴圈,例如測試乙個網段內地ip是否通達,又或者我們要迴圈迭代乙個檔案的內容,我們可以for迴圈來完成工作
2.1 for 迴圈結構
for i in `seq 5` #可迴圈迭代的物件,例如乙個開啟的檔案,等
doecho "haha $i" #迴圈體,for迴圈從中依次取值
done
2.2 for迴圈指令碼
1)檢測子網段內ip的通達性
#!/bin/bash
for i in
do &
done
wait
cat ip.txt
2)批量修改子網段ssh登陸密碼
#!/bin/bash
for i in do&
done
3)、批量新增使用者
#!/bin/bash
read -p "請輸入使用者字首,密碼,數量:" pre pass num
if [[ ! $num =~ ^[0-9]+ ]];then
ehco "請輸入數字"
ficat if [ $? -ne 0 ];then
useradd $pre$i
echo "使用者 $pre$i 建立成功..."
echo $pass|passwd --stdin $pre$i &>/dev/null
else
continue
echo "使用者 $pre$i 已經存在..."
fidone
break
;;n|no)
exit 1
;;*) echo "錯誤輸入,請重新輸入..."
esac
done
2、迴圈中用到的一些其他shell命令1、break 結束迴圈
2、exit 退出整個指令碼
3、continue 忽略本次迴圈剩餘的**,直接進⾏下一次迴圈
shell迴圈語句
一般的迴圈結構 for 變數名 in 列表 do 迴圈體done 迴圈執行機制 依次將列表中的元素賦值給變數名,每次賦值後執行一次迴圈體,直到列表中的元素耗盡,迴圈結束 一般的迴圈結構 while condition do 迴圈體done condition 迴圈控制條件 進入迴圈之前,先做一次判 ...
shell程式設計 迴圈語句
while語句 while語句格式 while 表示式 do command command done while 和 if 的條件表示式完全相同,也是 或commad或test while 表示式 if 表示式 表示式值為0,則迴圈繼續 表示式值為0,then 表示式值為非0,則迴圈停止 表示式值...
shell程式設計 迴圈語句
while語句 while語句格式 while 表示式 do command command done while 和 if 的條件表示式完全相同,也是 或commad或test while 表示式 if 表示式 表示式值為0,則迴圈繼續 表示式值為0,then 表示式值為非0,則迴圈停止 表示式值...