簡單的條件判斷

參數 說明
a && b 如果 a 是真,則執行 b。如果 a 是假,則不執行 b。
a || b 如果 a 是假,則執行 b。如果 a 是真,則不執行 b。
a && b || c 如果 a 是真,則執行 b,如果 a 是假,則執行 c。
因為 a 為假時,a && b 為假,所以會去執行 c。
a && b && c && d && e && f || g 如果 a~f 有一個是假,則執行 c。

中括號的條件判斷

使用中括號必須要特別注意,因為中括號用在很多地方,包括萬用字元與正規表示法等等,所以如果要在 bash 的語法當中使用中括號作為 shell 的判斷式時,必須要注意中括號的兩端需要有空白字元來分隔喔!

檔案判斷
參數 說明 範列
-r file 檔案可讀為真。 [ -r /tmp/aaa ]
-w file 檔案可寫為真。 [ -w /tmp/aaa ]
-x file 檔案可執行為真。 [ -x /tmp/aaa ]
-f file 檔案為正規檔案為真。 [ -f /tmp/aaa ]
-d file 檔案為目錄為真。 [ -d /tmp/aaa ]
-c file 檔案為字元裝置為真。 [ -c /dev/aaa ]
-b file 檔案為區塊裝置為真。 [ -b /dev/aaa ]
-s file 檔案大小大於0為真。 [ -s /tmp/aaa ]
-t file 当文件描述符(默认为1)指定的设备为终端时为真。 [ -t /tmp/aaa ]
-p file 檔案為管道為真。 [ -p /tmp/aaa ]
-h file 檔案為符號連結為真。 [ -h /tmp/aaa ]
-L file 檔案為符號連結為真。 [ -L /tmp/aaa ]
字串比較
參數 說明 範列
"字串" = "字串" 比較二個字串相等為真。 [ "$a" = "$b" ]
"字串" == "字串" 比較二個字串相等為真。 [ "$a" == "$b" ]
"字串" != "字串" 比較二個字串不同為真。 [ "$a" != "$b" ]
-z "字串" 空字串為真。 [ -z "$b" ]
-n "字串" 非空字串為真。 [ -n "$b" ]
數字比較
參數 說明 範列
-eq 數字相等為真。 [ "$a" -eq "$b" ]
-ne 數字不相等為真。 [ "$a" -ne "$b" ]
-gt 數字較大為真。 [ "$a" -gt "$b" ]
-ge 數字較大或相等為真。 [ "$a" -ge "$b" ]
-lt 數字較小為真。 [ "$a" -lt "$b" ]
-le 數字較小或相等為真。 [ "$a" -le "$b" ]
多重條件比較
參數 說明 範列
-a 條件同時成立為真。 [ -r file -a -x file ]
-o 條件只要一個成立為真。 [ -r file -o -x file ]
! 反假為真,反正為假。 [ ! "$a" -gt "$b" ]

參考資料

創作者介紹

邱小新の工作筆記

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()