1、文件的“类型”检测,   如 test -e filename   

   -e     该“文件”是否存在(常用)(exist)

   -f     该“文件”是否为文件(file) (常用)

   -d     该“文件”是否为目录(directory)

   -b     该“文件”是否为一个快设备(block)

   -c     该“文件”是否为一个字符设备(char)

   -S     该“文件”是否为一个套接字文件(socket)

   -P     该“文件”是否为一个FIFO(管道)文件(pipe)

   -L     该“文件”是否为一个连接文件。(link)

   

2、文件的“权限”检测,如 test  -r   filename

    -r    检测该文件是否具有“可读”属性

    -w    检测该文件是否具有“可写”属性

    -x    检测该文件是否具有“可执行”属性

    -u    检测该文件是否具有“SUID”属性

    -g    检测该文件是否具有“SGID”属性

    -k    检测该文件是否具有“Sticky bit”属性

    -s    检测该文件是否为“非空白文件”

3、比较两个文件,如: test file1 -nt file2

    -nt   判断file1是否比file2新(newer than)

    -ot   判断file1是否比file2旧(older than)

    -ef   判断file1与file2是否为同一个文件,可用于判断硬链接。主要判断两个文件是否均指向通过一个inode。(equal file)


4、判断字符串数据

test -z string   判断字符串是否为0,若string为空字符串,则为true

test -n string     判断字符串是否非为0,若string为空字符串,则为false

test str1 = str2     判断str1是否等于test2,若相等,则回传true(注意等号两边必须加空格)

test str != str2     判断str1是否等于str2,若相等,则回传false(注意不等号两边必须夹空格)


5、两个整数之间的判断,例如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)


6、多重条件判断

-a    (and)两个条件同时成立。例如: test -r file -a -x file  若文件file具有可读和可执行权限,则为真。

    -o    (or)两个条件任何一个成立。例如: test -r file -o -x file  则file具有r或x权限时,就可以回传true

    !    条件求反,如test ! -x file,当file 不具有x时,回传true