標籤:http 使用 檔案 for 工作 linux ar htm
1.for迴圈語句
執行個體1.1 最基本的for迴圈
#!/bin/bash
for x in one two three four
do
echo number $x
done
註:"for" 迴圈總是接收 "in" 語句之後的某種類型的字列表。在本例中,指定了四個英語單詞,但是字列表也可以引用磁碟上的檔案,甚至檔案萬用字元。
執行個體1.2
#!/bin/bash
for x in /var/log/*
do
#echo "$x is a file living in /var/log"
echo $(basename $x) is a file living in /var/log
done
註:這個$x獲得的是絕對路徑檔案名稱;可以使用 "basename" 可執行程式來除去前面的路徑資訊。如果只引用當前工作目錄中的檔案(例如,如果輸入 "for x in *"),則產生的檔案清單將沒有路徑資訊的首碼。
執行個體1.3 對位置參數做for迴圈
#!/bin/bash
for thing in "[email protected]"
do
echo you typed ${thing}.
done
執行個體1.4 for迴圈中用seq產生迴圈次數
#!/bin/bash
for j in $(seq 1 5)
do
echo $j
done
註:對於固定次數的迴圈,可以通過seq命令來實現,就不需要變數的自增了
2.while迴圈語句
執行個體2.1 迴圈輸出1到10的數字
#!/bin/bash
myvar=1
while [ $myvar -le 10 ]
do
echo $myvar
myvar=$(( $myvar + 1 ))
done
註:只要特定條件為真,"while" 語句就會執行
3.until迴圈語句
執行個體3.1 迴圈輸出1到10的數字
"Until" 語句提供了與 "while" 語句相反的功能:只要特定條件為假,它們就重複。下面是一個與前面的 "while" 迴圈具有同等功能的 "until" 迴圈。
#!/bin/bash
myvar=1
until [ $myvar -gt 10 ]
do
echo $myvar
myvar=$(( $myvar + 1 ))
done
還有一點非常重要,迴圈中難免會用到臨時變數的自增,shell中變數自增的實現方法,見我前面的一個
Linux Shell中寫迴圈時,常常要用到變數的自增,現在總結一下整型變數自增的方法。
我所知道的,bash中,目前有五種方法:
1. i=`expr $i + 1`;
2. let i+=1;
3. ((i++));
4. i=$[$i+1];
5. i=$(( $i + 1 ))
可以實踐一下,簡單的執行個體如下:
#!/bin/bash
i=0;
while [ $i -lt 4 ];
do
echo $i;
i=`expr $i + 1`;
# let i+=1;
# ((i++));
# i=$[$i+1];
# i=$(( $i + 1 ))
done
另外,對於固定次數的迴圈,可以通過seq命令來實現,就不需要變數的自增了;執行個體如下:
#!/bin/bash
for j in $(seq 1 5)
do
echo $j
done
http://www.linuxidc.com/Linux/2011-05/35893.htm