条件测试语法
条件测试语法
*注意: 测试表达式中的变量需要使用双引号“”,否者逻辑会出错。
语法1:
test <测试表达式>
语法2(推荐):
[ <测试表达式> ]
语法3(推荐):
[[ <测试表达式> ]]
语法4(支持所有数学公式计算,强烈推荐):
((<测试表达式>))
((num=num+1))
测试表达式
(0) 逻辑操作符;
(1) 整数测试;
(2) 字符串测试;
(3) 文件测试
0、逻辑操作符:
[ ] 和 test 中使用: -a -o !
[[ ]] 和 (()) 中使用: && || !
1、整数测试:
A -gt B: 大于
A -ge B: 大于等于
A -eq B: 等于
A -lt B: 小于
A -le B: 小于等于
A -ne B: 不等于 not equal to
2、字符串测试(注意符号两端的空格):
A == B或A = B:等值比较
A != B: 不等于
-z A: 判断A是否为空;空则为真,不空则假;
-n A:判断A是否不空;不空则为真,空则为假;
3、文件测试:
-e $file: 是否存在;存在则为真;
-f $file: 文件是否存在,且为普通文件;
-d $file: 是否存在且为目录;
-h $file: 是否存在且为符号链接文件;
-L $file:同上
-b $file: 是否存在且为块设备文件;
-c $file: 是否存在且为字符设备文件;
-S $file: 是否存在且为套接字文件:
-p $file: 是否存在且为管道文件;
-r $file: 当前用户对此文件是否拥有读权限;
-w $file: 写权限;
-x $file: 执行权限;
-u $file: 文件是否拥有suid权限;
-g $file:文件是否拥有sgid权限;
-k $file: 文件是否拥有sticky权限;
-O $file: 当前用户是否为文件的属主;
-G $file: 当前用户是否属于文件的属组;
-N $file: 文件自从上一次被读取之后,是否被修改过;