test
expr
一、TEST
1。关于某个档名的“类型”的侦测(存在与否)
-e 该档名是否存在?
-f 该档名是否为档案(file)?
-d 该文件名是否为目录(directory)?
-b 该文件名是否为一个block device装置?
-c 该文件名是否为一个character device装置?
-S 该档名是否为一个Socket档案?
-p 该档名是否为一个FIFO(pipe)档案?
-L 该档名是否为一个连结档?
2。关于档案权限的侦测:
-r 该文件名是否具有“可读”属性?
-w 该文件名是否具有“可写”的属性?
-x 该文件名是否具有“可执行”的属性?
-u 该文件名是否具有“SUID”的属性?
-g 该文件名是否具有“SGID”的属性?
-k 该文件名是具有“Sticky bit"的属性?
-s 该档名是否为“非空白档案”?
3。 两个档案之间的比较:
-nt (newer than)判断file1是否比file2新
-ot (older than)判断file1 是否比file2旧
-ef 判断 file1 与file2是否为同一档案,可用在判断hard link 的判定上。主要意义在判定两个档案 是否均指向同一个inode
4。关于两个整数之间的判定:
-eq 两数值相等(equal)
-ne 两数值不相等(not equal)
-gt n1 大于n2( greater than)
-lt n1 小于 n2 (less than)
-ge n1 大于等于n2 (greater than or equal)
-le n1 小于等于 n2 (less than or equal)
5。判定字符串的数据:
test -z string 判定字符串是否为0?若string为空字符串,则为true
test -n string 判定字符串是否为非0?若string 为空字符串,则为false 注:-n亦可省略
test str1 = str2 判定str1是否等于str2,若相等,则回传 true
test str1 != str2 判定str1是否不等于str2,若相等则回传false
6。多重条件判定:
-a (and)两状况同时成立。例如:test -r file -a -x file,则file 同时具有 r 与 x 权限时才回传 true.
-o (or)两状况任何一个成立。例如: test -r file -o -x file,则file 具有 r 或 x 权限时就可回传true
! 反相状态,如test ! -x file ,则file 不具有x时,回传true