linux test条件测试
语法
test EXPRESSION
[ EXPRESSION ]
[[ EXPRESSION ]]
数值测试
-eq 是否等于
-ne 是否不等
-gt 是否大于
-ge 是否大于等于
-lt 是否小于
-le 是否小于等于
字符串测试
比较时建议字符串变量要使用双引号,即使变量为空,也要使用双引号。
== 是否等于
!= 是否不等
> 是否大于
< 是否小于
=~ 左侧字符串是否能被右侧PATTERN匹配,此表达式一般用于[[ ]]中
-z $1 $1是否为空,空为真
-n $1 $1是否不空,不空为真
文件测试(常用)
文件类型检测:
-e 文件名是否存在
-f 文件名是否存在且为文件
-d 文件名是否存在且为目录
-s 文件名是否存在且非空
文件权限检测:
-r 文件名是否存在且可读
-w 文件名是否存在且可写
-x 文件名是否存在且可执行
两文件比较:
-nt 判断file1是否比file2新
-ot 判断file1是否比file2旧
-ef 判断file1与file2是否为同一文件,hard link,判定两文件是否都指向同一inode
多重条件判定:
-a 两个条件全成立,则回传true
-o 有一个条件成立,则回传true
! 取反