shell编程中的条件判断基本知识
小编:动力软件园 时间:2015-04-21 17:27:53
所有的判断需要用标准的格式 [ -e/-b-f ] 中括号和判断参数之间有空格
一、按照文件类型进行条件判断
-b 文件 : 判断文件是否存在,并且是否为设备块文件(是块设备文件为真)
-c 文件: 判断文件是否存在,并且是否为字符设备文件(是字符设备为真)
-d 文件: 判断文件是否存在,并且是否为目录文件(是目录文件为真)
-e 文件:判断文件是否存在,(存在为真)
-f 文件:判断文件是否存在,并且是否为普通文件(是普通文件为真)
-L 文件:判断文件是否存在,并且是否为符号链接文件(是符号链接文件为真)
-p 文件:判断文件是否存在,并且是否为管道文件(是为真)
-s 文件:判断文件是否存在,并且是否为空(非空为真)
-S 文件:判断文件是否存在,并且是否为套接字文件(是套接字文件为真)
二、按照文件权限判断
-r 文件:判断文件是否存在,并且是否有读权限,有读权限为真。
-w 文件:判断文件是否存在,并且是否有写权限,
-x 文件:判断文件是否存在,并且是否有执行权限
-u 文件:判断文件是否存在,并且是否有SUID权限
-g 文件:判断文件是否存在,并且是否有SGID权限
-k 文件:判断文件是否存在,并且是否有SBit权限
三、两个文件之间的比较 nt (newtime ) ot(oldtime)ef()
文件1 -nt 文件2 判断文件1的修改时间是否比文件2新(如果新为真)
文件2 -ot 文件2 判断文件2的修改时间是否比文件2旧
文件1 -ef 文件2 判断两个文件的inode节点号是否一致。常用来判断硬链接文件是否是同一个文件。
四、两个整数之间的比较
整数1 -eq 整数2 相等
整数1 -ne 整数2 不相等
整数1 -gt 整数2 大于
整数1 -lt 整数2 小于
整数1 -ge 整数2 大于等于
整数1 -le 整数2 小于等于
五、字符串的判断(返回真)
-z 字符串 判断字符串是否为空
-n 字符串 判断是否为非空
字符串 1== 字符串2 两个字符串是否相等。这里声明,规范的写法是==。=用来赋值,虽然用=也不错,但是不符合规范,强烈建议用==
字符串 != 字符串2 不相等
六、多重判断条件
条件1 -a 条件2 逻辑与 判断1和2都成立,结果为真,-a是两个条件相连接
条件1 -o 条件2 逻辑或 有一个成立,结果为真
!判断 逻辑非 使原始的判断取反。