【条件判断语句】

按文件类型进行判断:

    -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有一个成立。

    ! 判断 逻辑非,使原始的判断式取反。