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.