文章来源《鸟哥的Linux私房菜》

此文仅用学习笔记用

test

选项及参数:

-e  #该文件名是否存在

-f   #该文件名是否存在且为文件

-d   #该文件名是否存在且为目录

-b   #该文件名是否存在且为一个block device设备

-c   #该文件名是否存在且为一个character device设备

-S  #该文件名是否存在且为一个socket文件

-p   #该文件名是否存在且为一个FIFO文件

-L   #该文件是否存在且为一个连接文件

 

侦测权限选项:

-r   #该文件名是否存在且是否有可读权限

-x  #该文件名是否存在且是否有可执行权限

-w  #该文件是否存在且有可写权限

-u   #该文件是否存在且具有SUID属性

-g   #该文件是否存在且具有SGID属性

-k   #该文件是否存在且具有sticky bit属性

-s   #该文件是否存在且为非空白文件

 

两个文件之间的比较:

test file1 -nt file2

-nt    #判断file1是否比file2新

-ot    #判断file1是否比file2旧

-ef   #判断file1与file2是否为同一文件,判断hard link

 

判断两个整数:

test n1 -eq n2

-eq  #是否相等

-ne  #是否不等

-gt   #是否n1大于n2

-lt   #是否n1小于n2

-ge  #是否n1大于等于n2

-le    #是否n1小于等于n2

 

 

判定字串的数据:

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

test -n string  #判定字串是否为0,若string为空字串,则为false

test  str1 == str2  #判断是否相等

test str1 != str2 #判断是否不等

 

多重条件判定:如test -r filename -a -x filename

-a  #and,同时成立,则返回true

-o #or ,其中一个成立,回传true

-! #反向状态,不具有此状态时回传true