shell程式設計中常用的迴圈:while 和 for,在使用的過程中,會發現一些差別。
1. **
1view code#!/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
1 root 192.168.1.100abc.txt2 root 192.168.1.101
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...