Shell 中的测试表达式使用的是 test。
test 测试表达式
比如:
test -f file && echo 1 || echo 0
[ 测试表达式 ]
比如:
[ -f file ] && echo 1 || echo 0
[[ 测试表达式 ]]
比如:
[[ ! -f file ]] && echo 0 || echo 1
文件测试操作符如下:
操作 | 说明 |
---|---|
-f 文件 | 若文件存在且为普通文件则为真 |
-d 文件 | 若文件存在且为目录文件则为真 |
-s 文件 | 若文件存在则为真 |
-r 文件 | 若文件存在且可读则为真 |
-w 文件 | 若文件存在且可写则为真 |
-x 文件 | 若文件存在且可执行则为真 |
-L 文件 | 若文件存在且为链表文件则为真 |
f1 -nt f2 | 若文件 f1 比文件 f2 新则真 |
f1 -ot f2 | 若文件 f1 比文件 f2 旧则真 |
操作 | 说明 |
---|---|
-z “字符串” | 若串长度为 0 则真 |
-n “字符串” | 若串长度为不为 0 则真 |
“串1”=“串2” | 若串 1 等于串 2 则真,可以使用 “==” 代替 “=” |
“串1”!=“串2” | 若串 1 不等于串 2 则真 |
在 [] 中使用的比较符 | 在 (()) 和 [[]] 中使用的比较符 |
---|---|
-eq | == |
-ne | != |
-gt | > |
-ge | >= |
-lt | < |
-le | <= |
在 [] 中使用的比较符 | 在 (()) 和 [[]] 中使用的比较符 |
---|---|
-a | && |
-o | || |
! | ! |
[ -n “file1" ] && echo 1 || echo 0 #"file1” 双引号不能去。