shell指令碼 for迴圈

2021-09-10 15:45:32 字數 2742 閱讀 1902

迴圈語句

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

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

for迴圈語句

需要指定乙個變數以及可以取值的取值列表,針對每乙個不同的取值執行相同的命令序列,直到變數值用盡,退出迴圈

取值列表:for語句的執行條件,其中包括多個屬性相同的物件,需要預先指定。

格式:

for 變數名 in 取值列表

do 命令序列

done

注:

for語句的操作物件為使用者指定名稱的變數

通過in關鍵字為該變數預先設定乙個取值列表

多個取值之間以空格作為分隔

do~done之間是乙個迴圈體

應用領域:

1、字串取值列表

#!/bin/bash

#字串取值列表

for a in 電腦 汽車 手機 書包

do echo "我要買$a"

done

我在 根目錄下的 /opt目錄下建立乙個的shell指令碼名為for01.sh(如下圖)

在vi便一種建立指令碼

a表示自定義變數名

電腦汽車書包表示待取值

$a表示依次取得值

儲存退出

chmod +x for01.sh   為指令碼新增執行許可權

2、檔案取值列表

#!/bin/bash

#檔案取值列表(命令執行取值列表)

i=1

for user in $(cat /opt/a)

do echo "$i號使用者:$user"

let i++

done

先在 /opt目錄下建立個a檔案寫入一些名字

再建立for02.s**件寫入下圖內容

$(cat /opt/a)表示要從這個目錄中取值

儲存退出為檔案新增執行許可權

效果如下圖

3、掃瞄ip位址

#!/bin/bash

#掃瞄ip位址

for ip in 192.168.108. //網段

do ping -c 3 -i 0.2 -w 1 $ip &> /dev/null

if [ $? -eq 0 ];then

echo "$ip is up!!!"

else

echo "$ip is down!!!"

fidone

建立for03目錄

如下圖

這裡面的192.168.0.是自己的網段

加入執行許可權後結果如下圖

4、批量新增使用者

方法一:同乙個姓的

#!/bin/bash

#批量新增使用者

for a in teacher //新增五個使用者

do useradd $a

echo 123 | passwd --stdin $a &> /dev/null

#echo 123 是為使用者設定密碼

done

建立for04

新增執行許可權並執行如下圖

再cat /etc/passwd會顯示使用者

方法二:不同姓名

vi b.txtab

cde#!/bin/bash

#批量新增使用者

for a in $(cat /opt/b)

do useradd $a

echo 123 | passwd --stdin $a &> /dev/null

done

建立for05如下圖

為檔案新增執行許可權並執行

完成後在cat /etc/passwd中檢視

shell指令碼 迴圈

迴圈有三種for,while,until,前兩種多種語言都有,大同小異,最後那種用的少,咱們就不說了 老規矩,上來先看 塊 root localhost scripts bash ceshi.sh 12 3456 78910 root localhost scripts cat ceshi.sh b...

shell 指令碼 迴圈

shell for 迴圈參考 linux下shell的for迴圈語句 shell逐行讀取檔案的3種方法 for迴圈語法 for var in item1 item2 itemn do command donefor迴圈 路徑查詢 在 mx資料夾有檔案 check list md5result tes...

shell 指令碼 for 迴圈

語法一 for 變數 in 值1 值2 值3 do程式 done 例項11 bin bash 2 shijian zaoshang zhongwu xiawu wanshang 3 for time in shijian 4 do5echo time 6 done 例項21 bin bash 2fo...