条件判断比较

判断文件是否存在,且是指定类型:

-b 块设备文件block

-c 字符设备文件character

-d 目录directory

-e 文件是否存在,exist

-f 普通文件file

-L 符号链接link

-p 管道文件pipe

-s 文件是否非空

-S 套接字文件socket

判断文件是否存在,且是指定权限:

-r  不分所有者所属组其他人,只有一个有就为真

-w  不分所有者所属组其他人,只有一个有就为真

-x  不分所有者所属组其他人,只有一个有就为真

-u  SUID

-g  SGID

-k  SBit

两个文件比较:

文件1 -nt 文件2  判断文件1是否比文件2新(修改时间),new than

文件1 -ot 文件2  判断文件1是否比文件2旧(修改时间),old than

文件1 -ef 文件2  判断文件1是否和文件2具体相同inode,即判断两个文件是否为同一个文件,即判断两个文件是否为硬链接,equal file,同命令ll -i查看两个文件的i节点号是否相等。

两个数值比较:

整数1 -eq 整数2  判断相等equal

整数1 -nq 整数2  判断不相等not equal

整数1 -lt   整数2  判断小于less than

整数1 -gt  整数2  判断大于greater than

整数1 -le  整数2  判断小于等于less or equal

整数1 -ge 整数2  判断大于等于greater or equal

字符串判断:

-z  空为真

-n  非空为真

字符串1==字符串2  等为真

字符串1!=字符串2  不等为真

多条件判断:

判断1 -a 判断2  都为真才为真,and

判断1 -o 判断2  有一个为真就为真,or

!判断      取反,真为假

[root@localhost ~]# test -e testfile  注释:两种语法格式,test和[]
[root@localhost ~]# echo $?
0
[root@localhost ~]# test -e a
[root@localhost ~]# echo $?  
1
[root@localhost ~]# [ -e testfile ]  注释:shell脚本中此语法格式使用更普遍
[root@localhost ~]# echo $?        
0
[root@localhost ~]# [ -e test ]    
[root@localhost ~]# echo $?    
1

 

posted @ 2017-08-13 21:42  xiongjiawei  阅读(254)  评论(0编辑  收藏  举报