在Linux中test主要用于shell编程中用于检查某个条件是否成立,可以进行数值、字符、文件的测试。
一些测试参数如下:
文件名的检测:
-e :是否存在
-f :是否存在且为文件
-d :是否存在且为目录
-b :是否存在且为块设备
-c :是存在且为字符设备
-S :是否存在且为socket文件
-p :是否存在且为管道文件
-L : 是否存在且问链接文件
文件权限检测(均检测文件名是否存在)
-r :是否可读
-w :是否可写
-x :是否可执行
-u :检测是否具有SUID属性
-g :检测是否具有SGID属性
-k :是否具有Stick bit 属性
-s :检测文件是否为空文件
文件之间的比较
-nt :test file1 -nt file2 判断file1是否比file2新
-ot :test file1 -ot file2 判断file1是否比file2旧
-ef :test file1 -ef file2 判断file1是否比file2是否为同一个文件
两个整数的比较
-eq :相等
-ne :不等
-gt :大于
-lt :小于
-ge :大于等于
-le :小于等于
字符串判定:
-z :字符串是否为0,为空则为true
-n :字符串是否非0,非空则true
str1==str2 :字符串是否相等
str1!=str2 :字符串是否不等
多重判定
-a :两个条件是否同时成立,相当于and
-o :两个条件任何一个成立就返回true,相当于or
! :反向