fairyguo 发表于 2018-8-24 11:30:15

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]
查看完整版本: shell判断式语句