#條件判斷的格式
[ exp ]
[[ exp ]]
test exp
注意: exp 與 「[」、"]"括號之間必須要有空格,否則會報語法錯誤;[ exp ] 與 [[ exp ]]的區別,本文僅討論[ exp ],而在[[ exp ]]模式下,額外支援指令,但是同樣都需要空格;
&&、|| 分別作為邏輯與、邏輯或的運算
[[ 1 == 1 ]] 結果為真
#條件判斷的型別
條件判斷的型別有三種:整數判斷,字元判斷,檔案判斷
條件邏輯表示式:
-a : and 邏輯與
-o : or 邏輯或
! : nor 邏輯非
##整數判斷
-eq#equal 相等
-ne#not equal 不相等
-gt#greater than 大於
-lt#less than 小於
-ge#greater or equal 大於或等於
-le#less or equal 小於或等於
##字元判斷
-z#zero 當前字串是否為空
-n#not zero 當前字串是否不為空
==兩端字串是否相等
!=兩端字串是否不相等
>長度是否大於
<長度是否小於
注意:「< 」與 「> 」做字串比較的時候,在[ exp ] 情況下需要需要輸入 「<」 或者 「>」 作為轉義,或者使用 [[ > exp ]] 模式可以直接使用「< 」與 「> 」作為判斷符號使用。
str1=
"hello"
str2=
"hell"if[
[$str1
>
$str2]]
;then
echo
"$str1 > $str2"
fiif
[$str1 \>
$str2];
then
echo
"$str1 > $str2"
fi
##檔案判斷
-e#exit 判斷檔案是否存在
-f#if file 判斷是否是檔案
-d#dir 判斷是否是路徑
-r判斷檔案是否可讀
-w判斷檔案是否可寫
-x判斷檔案是否可執行
-l判斷檔案是否為符號鏈結
#!/bin/bash
mfile=123.sh
if[ -f $mfile -a -x $mfile];
then
echo
"$mfile is ok"
fi
if
[[ -f $mfile
&& -x $mfile]]
;then
echo
"$mfile is ok"
fi
##條件判斷基本結構
if conditions;then
statement1
....
...fi
if conditions;then
statement1
else
statement2
fiif condition1;
then
statement1
elif condition2 ;
then
statement2
fi
#總結 Shell指令碼的條件測試和if條件語句使用方法
一 條件測試操作 要使shell指令碼程式具備一定的 智慧型 面臨的第乙個問題就是如何區分不同的情況以確定執行何種操作。shell環境根據命令執行後的返回狀態值 來判斷是否執行成功,當返回值為0時表示成功,否則 非0值 表示失敗或異常。使用專門的測試工具 test命令,可以對特定條件進行測試,並根據...
Shell條件語句
if 語句通過關係運算子判斷表示式的真假來決定執行哪個分支。shell 有三種 if else 語句 if else 語句的語法 if expression then statement s to be executed if expression is true fi注意 expression 和...
shell 條件語句
test命令 測試表示式是否成立,若成立返回0,否則返回其他數值 格式一 test 條件表示式 格式二 條件表示式 檔案測試 操作符 檔案或目錄 常用的測試操作符 d 測試是否為目錄 directory e 測試目錄或檔案是否存在 exist f 測試是否為檔案 file r 測試當前使用者是否有許...