判斷式與迴圈(loop):
(1) while迴圈:
其語法架構為:
while [ 判斷式一 ] 邏輯運算符號 [ 判斷式二 ] 邏輯運算符號 [ 判斷式三 ]
do
當判斷式串的總測試結果為真,就執行寫在此的程式碼
done
說明:
※ 邏輯運算符號,可以是&&或 ||。在中括號之中,&&代表交集,||代表聯集。
※ [ 判斷式 ]與邏輯運算符號可以有無限組或只有一個[ 判斷式 ],不限於上例之三組。
※ [ 判斷式 ]中,判斷式即是3.所介紹過的判斷式。而判斷式與左右中括號之間,一定各要相隔一個空白字元,否則執行會出錯。
範例如:
i=3
while [ $i -gt 0 ] && [ $i -lt 5 ]
do
echo $i
i=$(($i-1))
done
執行顯示:
(2) until 迴圈:
其語法架構為:
until [ 判斷式一 ] 邏輯運算符號 [ 判斷式二 ] 邏輯運算符號 [ 判斷式三 ]
do
當判斷式串的總測試結果為假,就執行寫在此的程式碼。直到總測試結果為真為止。
done
說明:
※ 邏輯運算符號,可以是&&或 ||。在中括號之中,&&代表交集,||代表聯集。
※ [ 判斷式 ]與邏輯運算符號可以有無限組或只有一個[ 判斷式 ],不限於上例之三組。
※ [ 判斷式 ]中,判斷式即是3.所介紹過的判斷式。而判斷式與左右中括號之間,一定各要相隔一個空白字元,否則執行會出錯。
範例如:
i=7
until [ $i -gt 0 ] && [ $i -lt 5 ]
do
echo $i
i=$(($i-1))
done
執行顯示:
(3) for 迴圈:
for迴圈有兩種寫法:
(3-1) for 迴圈第一種寫法:
for 變數名稱 in 值一 值二 值三 #事實上,值可以有任意個
do
程式碼
done
在執行第N次迴圈(N<=值的數目)時,會將值存入變數並且執行程式碼。如:
for dirname in kkk jjj ggg
do
mkdir $dirname
done
執行之後,目錄下就多了kkk jjj ggg三個子目錄。
(3-2) for迴圈的第二種寫法,與C++中的for迴圈很像,是利用整數變數來設定初始值、迴圈執行條件、迴圈步階。語法如:
for ((變數名稱=初始值 ; 迴圈執行條件 ; 迴圈步階))
do
程式碼
done
其中,迴圈執行條件支援<、>、<=、>=符號來代表小於、大於、小於等於、大於等於,迴圈步階支援用 整數變數名稱++、整數變數名-- 來代表遞增和遞減。例如:
j=1
for ((i=1;i<=5;i++))
do
j=$(($i*$j))
done
echo $j
執行顯示:
留言列表