shell判断式语句
【条件判断语句】按文件类型进行判断:
-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有一个成立。
! 判断逻辑非,使原始的判断式取反。
页:
[1]