- 关于某个文件名的“文件类型”判断,如test -e filename 表示存在否
- -e 该“文件名”是否存在?(常用)
- -f 该“文件名”是否存在且为文件(file)?(常用)
- -d 该“文件名”是否存在且为目录(directory)?(常用)
- -b 该“文件名”是否存在且为一个block device 设备?
- -c 该“文件名”是否存在且为一个character device 设备?
- -S 该“文件名”是否存在且为一个Socket 文件?
- -p 该“文件名”是否存在且为一个FIFO (pipe) 文件?
- -L 该“文件名”是否存在且为一个链接文件?
- 关于文件的权限侦测,如test -r filename 表示可读否(但root 权限常有例外)
- -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 的判定上。主要意义在判定,两个文件是否均指向同一个inode 哩!
- 关于两个整数之间的判定,例如test n1 -eq n2
- -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)
- 判定字串的数据
- 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
- 多重条件判定,例如: test -r filename -a -x filename
- -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
利用判断符号[],
中括号的两端需要有空白字符来分隔
网友评论