qns_fengyusong 发表于 2018-8-21 12:42:47

shell中 if 判断

  整数比较:
  -eq 等于,如:if [ "$a" -eq "$b" ]
  -ne 不等于,如:if [ "$a" -ne "$b" ]
  -gt 大于,如:if [ "$a" -gt "$b" ]
  -ge 大于等于,如:if [ "$a" -ge "$b" ]
  -lt 小于,如:if [ "$a" -lt "$b" ]
  -le 小于等于,如:if [ "$a" -le "$b" ]
  <   小于(需要双括号),如:(("$a" < "$b"))
   "$b"))
  >=大于等于(需要双括号),如:(("$a" >= "$b"))
  字符串比较:
  = 等于,如:if [ "$a" = "$b" ]
  == 等于,如:if [ "$a" == "$b" ]
  != 取反,如 if [ "$a" != "$b" ]
  -z 字符串为"null".就是长度为0.
  -n 字符串不为"null"
  其他判断参数:
  -e                        文件存在
  -a                        文件存在(已被弃用)
  -f                        判断文件是一个regular文件(正常文件,非目录或设备)
  -s                        文件长度不为0
  -d                        判断对象是目录
  -b                        判断对象是块设备
  -c                        判断对象是字符设备
  -p                        判断对象是管道
  -h                        判断文件是符号连接
  -L                        判断文件是符号连接
  -S(大写)                  判断文件是一个socket
  -t                        关联到一个终端设备的文件描述符。用来检测脚本的stdin[-t0]或[-t1]是一个终端
  -r                        文件具有读权限,针对运行脚本的用户
  -w                        文件具有写权限,针对运行脚本的用户
  -x                        文件具有执行权限,针对运行脚本的用户
  -u                        set-user-id(suid)标志到文件,即普通用户可以使用的root权限文件,通过chmod +s file实现
  -k                        设置粘贴位
  -O                        运行脚本的用户是文件的所有者
  -G                        文件的group-id和运行脚本的用户相同
  -N                        从文件最后被阅读到现在,是否被修改
  f1 -nt f2                   文件f1是否比f2新
  f1 -ot f2                   文件f1是否比f2旧
  f1 -ef f2                   文件f1和f2是否硬连接到同一个文件

页: [1]
查看完整版本: shell中 if 判断