一、shell条件测试
1、格式
格式一:test条件表达式
格式二:[ 条件表达式 ]
格式二:[[ 条件表达式 ] ]
2、文件测试[ 操作符 文件或目录 ]
//-d 这是一个目录
[root@localhost ~]# test -d /home //测试/home是否是一个目录
[root@localhost ~]# echo $?
0
[root@localhost ~]# test -d /home1111
[root@localhost ~]# echo $?
1
[root@localhost ~]# [ -d /home ] ; echo $?
0
ps:注意中括号里的前后的空格
! 取反
[root@localhost ~]# [ ! -d /home ]
测试符的种类
-f filename : 当filename 存在时返回真
-b filename : 当filename 存在并且是块文件时返回真(返回0)
-d pathname : 当pathname 存在并且是一个目录时返回真
-h filename : 当filename 存在并且是符号链接文件时返回真 (或 -L filename)
-u pathname : 当由pathname 指定的文件或目录存在并且设置了SUID 位时返回真-c filename : 当filename 存在并且是字符文件时返回真
-e pathname : 当由pathname 指定的文件或目录存在时返回真
-g pathname : 当由pathname 指定的文件或目录存在并且设置了SGID 位时返回真
-k pathname : 当由pathname 指定的文件或目录存在并且设置了"粘滞"位时返回真
-p filename : 当filename 存在并且是命名管道时返回真
-r pathname : 当由pathname 指定的文件或目录存在并且可读时返回真
-s filename : 当filename 存在并且文件大小大于0 时返回真
-S filename : 当filename 存在并且是socket 时返回真
-t fd : 当fd 是与终端设备相关联的文件描述符时返回真
-w pathname : 当由pathname 指定的文件或目录存在并且可写时返回真