Shell指令碼學習(二):條件陳述式與迴圈語句一、條件陳述式
首先,說到條件陳述式,就不得不先說下條件運算式的判斷,那麼shell中的條件運算式都有哪幾種呢,這裡可以分為三種:
1.字串的判斷
= 等於則為真。
!= 不相等則為真。
-z字串 字串長度偽則為真。
-n字串 字串長度不偽則為真。
2.整數的判斷
-eq 等於則為真。
-ne 不等於則為真。
-gt 大於則為真。
-ge 大於等於則為真。
-lt 小於則為真。
-le 小於等於則為真。
3.檔案的判斷
-e檔案名稱 如果檔案存在則為真。
-r檔案名稱 如果檔案存在且可讀則為真。
-w檔案名稱 如果檔案存在且可寫則為真。
-x檔案名稱 如果檔案存在且可執行則為真。
-s檔案名稱 如果檔案存在且至少有一個字元則為真。
-d檔案名稱 如果檔案存在且為目錄則為真。
-f檔案名稱 如果檔案存在且為普通檔案則為真。
-c檔案名稱 如果檔案存在且為字元型特殊檔案則為真。
-b檔案名稱 如果檔案存在且為塊特殊檔案則為真。
另外值得注意的是,Linux還提供了與(!)、或(-o)、非(-a)三個邏輯操作符,用於將測試條件串連起來,其優先順序為:!最高,-a次之,-o最低。
上面說了條件運算式的判斷,那下面就說有哪些條件運算式吧,以及用法。
1> if條件陳述式
shell程式中的兩路條件分支是通過if條件陳述式來實現的,例:
if [ 條件運算式 ]; then
條件為真時執行
fi
或者
if [ 條件運算式 ]; then
條件為真時執行
else
條件為假時執行
fi
2> case多路分支語句
多路分支語句case用於多重條件測試,還是直接舉例:
case $1 in
file 1)
echo “file 1.......”
;;
file 2)
echo “file 2.......”
;;
*)
echo “select file1 or file2”
;;
esac
二、迴圈語句1> for迴圈,例:
for i in 1 2 3 4
do
echo $i
done
2> while迴圈,例:
while 條件運算式
do
執行語句
done
3> until迴圈,與while差不多,例:
until 條件運算式
do
執行語句
done
Linux shell在迴圈控制語句中也有continue和break,用法跟C中相同。
好了,linux shell指令碼中的條件控制與迴圈控制差不多就這些了,共同學習。