test命令的测试功能
关于某个文件名的"文件类型"的判断:test -e filename
-e 判断该文件名是否存在
-f 判断该文件名是否存在且为文件(file)
-d 判断该文件名是否存在且为目录(directory)
-b 判断该文件名是否存在且为一个block device设备
-c 判断该文件名是否存在且为一个character device设备
-S 判断该文件名是否存在且为一个Socket文件
-p 判断该文件名是否存在且为一个FIFO(pipe)文件
-L 判断该文件名是否存在且为一个连接文件
关于某个文件名的权限检测:test -r filename
-r 检测该文件名是否存在且具有可读的权限
-w 检测该文件名是否存在且具有可写的权限
-x 检测该文件名是否存在且具有可执行的权限
-u 检测该文件名是否存在且具有"SUID"的属性
-g 检测该文件名是否存在且具有"SGID"的属性
-k 检测该文件名是否存在且具有"Sticky bit"的属性
-s 检测该文件名是否存在且为非空白文件
连个文件之间的比较:test file1 -nt file2
-nt(newer than) 判断file1是否比file2新
-ot(older than) 判断file1是否比file2旧
-ef 判断file1和file2是否为同一个文件,可用在hard link的判定上 。
关于两个整数之间的判定:test n1 -eq n2
-eq 两数值相等(equal)
-ne 两数值不等(not equal)
-gt n1大于n2(greater than)
-lt n1小于n(less than)
-ge n1大于等于n2(greater than or equal)
-le n1小于等于n2(less than or equal)
判定字符串的数据:
test -z string 判定字符串是否为0,若string为空字符串,则为true
test -n string 判定字符创是否非为0,若String不为空字符串,则为true
test str1=str2 判定字符串str1是否等于str2,若相等,则为true
test str1!=st2 判定字符创Str1是否不等于str2,若不相等,则为true