1、文件测试表达式
-d 文件 文件存在且为目录则为真
-f 文件 文件存在且为普通文件则为真
-e 文件 文件存在则为真,不辩别是目录还是文件
-s 文件 文件存在且文件大小不为0则为真
-r 文件 文件存在且可读则为真,与执行脚本的用户权限也有关
-w 文件 文件存在且可写则为真,与执行脚本的用户权限也有关
-x 文件 文件存在且可执行则为真,与执行脚本的用户权限也有关
-L 文件 文件存在且为链接文件则为真
f1 -nt f2 文件f1比文件f2新则为真,根据文件的修改时间计算
f1 -ot f2 文件f1比文件f2旧则为真,根据文件的修改时间计算
2、字符串测试表达式
-z 如果字符串s1的长度为0,则测试条件为真 没有值 真的
-n 如果字符串s1的长度大于0,则测试条件为真 有值真的
=或== 如果s1等于s2,则测试条件为真,“=”前后应有空格 字符串必须用双引号
!= 如果s1不等于s2,则测试条件为真
< 如果按字典顺序s1在s2之前,则测试条件为真
> 如果按字典顺序s1在s2之后,则测试条件为真
注意
对于字符串的比较,要将字符串加比引号后再比较。如[ -n "$string" ]
3、整数操作符
-eq ==或= 等于,全拼为equal
-ne != 不等于,全拼为not equal
-gt > 大于,全拼为greater than
-ge >= 大于等于,全拼为greater equal
-lt < 小于,全拼为less than
-le <= 小于等于,全拼为less equal
注意:第一列在[]和test中使用,第二列在[[ ]]和(( ))中使用
4、逻辑操作符
在[]和test中使用 在[[ ]]和(( ))中使用 说明
-a && and,与,两端都为真,则结果为真
-o \|\| or,或,两端有一个为真,则结果为真
! ! not,非,两端相反,则结果为真