其他问题

linux之 if 语法

  Shell 里面比较字符写法:

  -eq 等于,-ne 不等于,-gt 大于,-lt 小于,-le 小于等于,-ge 大于等于,

  -z 空串,= 两个字符相等,!= 两个字符不等,-n 非空串

  大体的格式

  if list then

  do something

  elif list then

  do another thing

  else

  do something else

  fi

  复制代码

  一个例子:

  #!/bin/sh

  SYSTEM=`uname -s` # 获取操作系统类型,我本地是linux

  if [ $SYSTEM = "Linux" ] ; then # 如果是linux话输出linux字符串

  echo "Linux"

  elif [ $SYSTEM = "FreeBSD" ] ; then

  echo "FreeBSD"

  elif [ $SYSTEM = "Solaris" ] ; then

  echo "Solaris"

  else

  echo "What?"

  fi # 判断结束,以fi结尾

  复制代码

  ------------------------------------------------------------------------------------------------------------

  基本上和其他脚本语言一样。没有太大区别。不过值得注意的是。[]里面的条件判断。说明如下:

  1 字符串判断

  str1 = str2     当两个串有相同内容、长度时为真

  str1 != str2     当串str1和str2不等时为真

  -n str1       当串的长度大于0时为真(串非空)

  -z str1       当串的长度为0时为真(空串)

  str1        当串str1为非空时为真

  ------------------------------------------------------------------------------------------------------------

  2 数字的判断

  int1 -eq int2   两数相等为真

  int1 -ne int2   两数不等为真

  int1 -gt int2    int1大于int2为真

  int1 -ge int2   int1大于等于int2为真

  int1 -lt int2    int1小于int2为真

  int1 -le int2    int1小于等于int2为真

  -------------------------------------------------------------------------------------------------------------

  3 文件相关的if判断条件语句

  -r file     用户可读为真

  -w file     用户可写为真

  -x file     用户可执行为真

  -f file     文件为正规文件为真

  -d file      文件为目录为真

  -c file      文件为字符特殊文件为真

  -b file      文件为块特殊文件为真

  -s file      文件大小非0时为真

  -t file      当文件描述符(默认为1)指定的设备为终端时为真

  -e file 如果file存在为真 如:[ -e /var/log/syslog ]

  file1-nt file2 如果file1比 file2新,则为真 如:[ /tmp/install/etc/services -nt /etc/services ]

  file1-ot file2 如果file1比 file2旧,则为真 如:[ /boot/bzImage -ot arch/i386/boot/bzImage ]

  ---------------------------------------------------------------------------------------------------------

  4 复杂逻辑判断

  -a    与

  &&   与

  -o    或

  ||   或

  !    非

  -------------------------------------------------------------------------------------------------------------

  例子:

  if [[ -n ${userName} ]] && [[ $result == *${userName}* ]]; then

  echo "OK"

  else

  echo "FAIL"

  fi

  if [[ "X$(check_result)" != "XOK" ]] || [[ "X$(check_result1)" != "XOK" ]]; then

  echo "OK"

  else

  echo "FAIL"

  fi

  if [ "X$(check_result)" != "XOK" || "X$(check_result1)" != "XOK" ]; then

  echo "OK"

  else

  echo "FAIL"

  fi

  if [ "X$(check_result)" != "XOK" -o "X$(check_result1)" != "XOK" ]; then

  echo "OK"

  else

  echo "FAIL"

  fi




免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:bkook@qq.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
上一篇:Linux之poll机制原理及用法
下一篇:数据库介绍:基本概念、特点和功能
0

在线
客服

在线客服服务时间:9:00-18:00

客服
热线

19899115815
7*24小时客服服务热线

关注
微信

关注官方微信
顶部