2 while語句的結構
3 until語句的結構
for 變數名 in 取值列表
do
命令序列
done
● 使用for迴圈語句時,需要指定乙個變數及可能的取值列表,針對每個不同的取值重複執行相同的命令列,直到 變數值用完退出迴圈。「取值列表」稱為for 語句的執行條件,其中包括多個屬性相同的物件,需要預先指定
例:建立乙個新使用者列表,內容根據人事給定的姓名拼音來認定
[root@localhost~
] # vim users. txt //用做測試的列表檔案
chenye
dengchao
zhangjie
迴圈建立列表裡這些使用者,並給他們這些設定初始密碼,密碼為「123456」
[root@localhost~
]# vim uaddfor. sh //批量新增使用者的指令碼
#!/bin/bash
ulist=$
(cat /root/users. txt)
foruname
in $ulist
doif
[ $uname ==
` grep $uname /etc/passwd | awk -f: 』』 `
]then echo "姓名重複"
fiuseradd $uname
echo "123456"
| passwd --stdin $uname
&>
/dev/
null
done
[root@localhost~
] # chmod +x uaddfor. sh
[root@localhost~
] # .
/uaddfor. sh //測試並確認執行結果
while 條件測試操作
do
命令序列
done
● for迴圈語句非常適用於列表物件無規律,且列表**已固定(如果個列表檔案)的場合。而對於要求控制迴圈次 數、操作物件按數字順序編號、按特定條件執行重複操作等情況,則更適合使用另外一種迴圈-while 語句。
例:若要新增20個使用者,名稱依次為stul、 stu2、… stu20
[root@localhost~
]# vim uaddwhile. sh
#!/bin/bashi=1
while
[ $i -le 20
]//控制迴圈條件
do//重複迴圈執行的操作
uname=
" stu$i "
if[ $uname ==
`grep $uname /etc/ passwd | awk -f: 』』 `
]then echo"姓名重複"
fiuseradd $uname
echo 123456
| passwd --stdin $uname &
>
/dev/
null
let i++
done
[root@localhost~
]# chmod +x uaddwhile. sh
[root@localhost~
]# .
/uaddwhile. sh
until 條件測試操作
do
命令序列
done
● until迴圈與while迴圈類似,while迴圈能實現的指令碼until 同樣也可以實現,但區別是while 迴圈在條件為真是繼續執行迴圈,而until 則是在條件為假時執行迴圈。
例:計算從1到50的和,從1開始相加,採用迴圈的方式,每次迴圈後加1,將得到的值加入計算的和中數字運算採用的是let方式,直到加到50為止
[ root@localhost ]# vim sum1to50_until_ v1. sh
#!/bin/ bashi=0
s=0until [ $i -eq 50]do
let" i=$i+1 "
;let
" s=$s+$i "
done
echo』 sum(1.
.50)
=』$s
[root@localhost~
]# chmod +x sum1to50_until_vl.sh
[root@localhost~
]# .
/ sumlto50_ until_ v1.sh
sum(
1..50)=
1275
shell迴圈語句
一般的迴圈結構 for 變數名 in 列表 do 迴圈體done 迴圈執行機制 依次將列表中的元素賦值給變數名,每次賦值後執行一次迴圈體,直到列表中的元素耗盡,迴圈結束 一般的迴圈結構 while condition do 迴圈體done condition 迴圈控制條件 進入迴圈之前,先做一次判 ...
shell 迴圈語句
1 shell中的迴圈語句 迴圈語句,主要是為了簡化重複動作 在運維方面主要用於重複某項動作,例如批量建立使用者,在shell中主要有兩種 while迴圈 與 for 迴圈。1 while迴圈 while 迴圈主要用於無限次的迴圈情況,例如登入認證,你不知道多少次可以登入成功,當然可以認為限制登入次...
shell程式設計 迴圈語句
while語句 while語句格式 while 表示式 do command command done while 和 if 的條件表示式完全相同,也是 或commad或test while 表示式 if 表示式 表示式值為0,則迴圈繼續 表示式值為0,then 表示式值為非0,則迴圈停止 表示式值...