shell程式設計(二)
8.0 for
for有兩種應用方法
####注意,此方法與case 有相同之處,但case 後的變數是引用,而無for後是賦值,所以case 後用$var 而for 用var
8.1
8.11 for num in 1 2 3 4 ;do
echo $num
done
8.12如果in 後用*,則為列用當前shell檔案所在目錄中的所有檔案
for file in * ;do
echo $file
done
8.13 如果沒有引數,則預設使用命令列引數,注意,這裡沒in
for file ;do
echo $file
done
8.2 這種和c語言的for沒有多大區別 但這裡值得注意,(())裡面對變數的引用,並不用$
for((num=0 ; num < 10 ;num++));do
echo ((sum+=num)) ##這裡輸出出錯
((sum+=num))
echo sum ##這樣子沒問題
9.0 while
i =0
while(i<10);do
$i++ ##這裡這樣子做是不充許的,
((i+))##這裡應該這樣做
echo $i
done
10.0 until 剛好與 while 相反
i=0
until((i>10));do
((i++))
echo $i
done
輸出 0---1.。。11
11 shife 移去命行位,,後而跟引數 shift 2 預設為shift 1 $# 命令列引數的個數,從 $1 開始計算
while(($#>=1));do
echo $0
shife
done
12 跳出迴圈 exit break; continue 後面可以跟引數, 預設為break 1 contiue 1
1)break [n] 中止迴圈過程的執行,並且跳到下一個命令。
N表示跳出巢狀的層數
2)continue [n] 停止迴圈過程的當前一個反覆並且跳到循
環中的下一個反覆過程的開始部分,n表示忽略的層 當只 一層迴圈時,n為多個都一樣。 至少保持有一層。
3) exit [n] 停止shell程式的執行,並且將返回值設定為n。