shell指令碼之for迴圈

2021-12-29 21:14:35 字數 1691 閱讀 3272

迴圈語句

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=1for 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 迴圈

bin bash arr 0 a0 arr 1 a1 arr 2 a2 arr 3 a3 arr1 a b c 兩種方法取出陣列中的元素 echo echo 遍歷arr陣列 for s in do echo sdone 遍歷arr1陣列 for s in do echo sdone 遍歷當前資料夾下...

shell指令碼 for迴圈

迴圈語句 while對於要求控制迴圈次數 操作物件按數字順序編號,按特定條件執行重複操作。重複測試某個條件時,只要條件成立就會反覆執行 無限 除非強制終止,或者exit語句退出指令碼 for迴圈語句 需要指定乙個變數以及可以取值的取值列表,針對每乙個不同的取值執行相同的命令序列,直到變數值用盡,退出...

shell指令碼 迴圈

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