【条件判断语句】
按文件类型进行判断:
-b 文件 是否为块设备文件
-c 文件 是否为字符设备文件
-d 文件 是否为目录文件
-e 文件 判断文件是否存在
-f 文件 是否为普通文件
-L 文件 是否为链接符号文件
-p 文件 是否为管道文件
-s 文件 是否为空
-S 文件 是否为套接字文件
例如: [ -d student.txt] && echo "yes" || echo "no" #判断文件是否为目录文件
按文件权限进行判断:
-r 文件 是否有读权限
-w 文件 是否有写权限
-x 文件 是否有执行权限
-u 文件 是否有SUID权限
-g 文件 是否有SGID权限
-k 文件 是否有SBit权限
例如: [ -w student.txt ] && echo "yes" || echo "no" #判断文件是否有写得权限。
两个文件之间进行比较:
文件1 -nt 文件2 判断文件1的时间是否比文件2的新。
文件1 -ot 文件2 判断文件1的时间是否比文件2的旧。
文件1 -ef 文件2 判断文件1是否与文件2的iNode号一致,(一般用于判断硬链接的办法)
例如:ln /root/student.txt /tmp/stu.txt #创建硬链接
[ /root/student.txt -ef /tmp/stu.txt ] && echo "yes" || echo "no"
两个整数之间比较:
整数1 -eq 整数2 判断整数1是否和整数2相等。
整数1 -ne 整数2 判断整数1是否和整数2不相等。
整数1 -gt 整数2 判断整数1是否大于整数2。
整数1 -lt 整数2 判断整数1是否小于整数2。
整数1 -ge 整数2 判断整数1是否大于等于整数2。
整数1 -le 整数2 判断整数1是否小于等于整数2。
例如: [ 23 -eq 39 ] && echo "yes" || echo "no"
字符串的判断:
-z 字符串 判断字符是否为空。
-n 字符串 判断字符串是否为非空。
字符串1 == 字符串2 判断字符串1是否和字符串2相等。
字符串1 != 字符串2 判断字符串1是否和字符串2不相等。
多重条件判断:
判断1 -a 判断2 逻辑与,判断1,2都成立。
判断1 -o 判断2 逻辑或,判断1或2有一个成立。
! 判断 逻辑非,使原始的判断式取反。
转载于:https://blog.51cto.com/yqdszhdap/1895683