Shell Script 的 if / else 條件判斷式會用 test 或者中括號 “[ ]” 表達,以下是 Shell Script 的 if / else 寫法:
if 寫法:
1 2 3 4 5 6 |
#!/bin/sh if [ "$1" = "123" ] then echo "var is 123" fi |
if / else 寫法:
1 2 3 4 5 6 7 8 |
#!/bin/sh if [ "$1" = "123" ] then echo "var is 123" else echo "var is 456" fi |
if / else / else if 寫法:
1 2 3 4 5 6 7 8 9 10 11 |
#!/bin/sh if [ "$1" = "123" ] then echo "var is 123" elif [ "$1" = "456" ] then echo "var is 456" else echo "var is 789" fi |
除了用一般的運算子外,也可以用以下參數判斷否檔案:
1 2 3 4 5 6 7 8 |
#!/bin/sh if [ -f "/home/phpini/testfile" ] then echo "/home/phpini/testfile is a file" else echo "/home/phpini/testfile is not a file" fi |
除了 -f 外,Shell Script 還有很多運算子,包括:
-d file file 是目錄回傳 true.
-f file file 是檔案回傳 true.
-r file file 可讀回傳 true.
-s file file 的體積大於 0 (不是空檔案) 回傳 true.
-w file file 可寫入回傳 true.
-x file file 可執行回傳 true.
$str1 = str2 判斷 $str1 與 $str2 字串是否相同。
$str1 != $str2 判斷 $str1 與 $str2 字串是否不相同。
-n $str 當 $str1 不是 null, 回傳 true.
-z $str 當 $str1 是 null, 回傳 true.
var1 -eq var2 var1 等於 var2 回傳 true.
var1 -ne var2 var1 不等於 var2 回傳 true.
var1 -gt var2 var1 大過 var2 回傳 true.
var1 -ge var2 var1 大過或等如 var2 回傳 true.
var1 -lt var2 var1 小過 var2 回傳 true.
var1 -le var2 var1 小過或等如 var2 回傳 true.