shell程式設計中while與for的區別

2022-04-01 00:44:42 字數 1353 閱讀 4900

shell程式設計中常用的迴圈:while 和 for,在使用的過程中,會發現一些差別。

1. **

1

#!/bin/bash23

# while loop

4 echo -en "\t"

;date

5 cat abc.txt|while

read

user ip6do

7 &11done

12wait

13 echo "

this is while loop.

"14 echo -en "\t"

;date

1516

sleep

10s17 echo -e "\n"

1819

#for loop

20 echo -en "\t"

;date

21for line in `cat abc.txt|sed -e '

s/ /--/g'`

22do23'

`25 ip=`echo $line|awk -f '--'

''`26 ssh -oconnecttimeout=10

$user@$ip

"hostname"27

sleep

10s28 } &

29done

30wait

31 echo "

this is for loop.

"32 echo -en "

\t";date

view code

1 root 192.168.1.100

2 root 192.168.1.101

abc.txt

2. 執行

執行上面的shell指令碼,會得到下面的結果

3. 總結

從**可以看出

while迴圈:以行讀取檔案,預設分隔符是空格或者tab;迴圈體內有ssh、scp的時候,需要加上(不加的話,執行一次迴圈就退出)

for迴圈:以空格讀取檔案,也就是碰到空格,就開始執行迴圈體,所以需要以行讀取的話,就要把空格轉換成其他字元

從執行結果可以看出

while迴圈:wait沒起到作用,迴圈體在後台執行,後面的命令也同時在執行;

for迴圈:迴圈體在後台執行,等待迴圈體全部執行結束,後面的命令接著執行。

shell程式設計while

指令碼程式設計 順序結構 選擇結構 ifcase 迴圈結構 forwhile until while迴圈 適用於迴圈次數未知的場景,要有退出條件 語法 while condition do statement done 計算100以內所有正整數的和 bin bash declare i i 1 de...

Shell程式設計中的while迴圈

while迴圈是shell指令碼中最簡單的一種迴圈,但條件滿足時,while迴圈就重複執行一組語句,當條件不滿足時,就退出while迴圈。while condition do statements done condition 表示判斷條件,statements表示執行的語句 可以多條 do 和 d...

Shell指令碼程式設計while迴圈

while 語句 do 執行語句 done接下來將會通過兩個簡單並且經常的使用的例子講解 bin bash i 1while i le 10 do i expr i 1 done echo i其中lele le表示不大於,exp rexpr expr 表示是相加運算 原始檔為 1 192.168.1...