当前位置 主页 > 服务器问题 > win服务器问题汇总 >

    Shell脚本IF条件判断和判断条件总结

    栏目:win服务器问题汇总 时间:2019-11-07 22:03

    前言:
          无论什么编程语言都离不开条件判断。SHELL也不例外。
    复制代码 代码如下:
          if list then
              do something here
          elif list then
              do another thing here
          else
             do something else here
          fi 
      
    EX1:
    复制代码 代码如下:
    #!/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     #ifend

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

    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、文件的判断

    -r file     用户可读为真
    -w file     用户可写为真
    -x file     用户可执行为真
    -f file     文件为正规文件为真
    -d file     文件为目录为真
    -c file     文件为字符特殊文件为真
    -b file     文件为块特殊文件为真
    -s file     文件大小非0时为真
    -t file     当文件描述符(默认为1)指定的设备为终端时为真

    4、复杂逻辑判断

    -a         与
    -o        或
    !        非

    结尾

    语法虽然简单,但是在SHELL里使用的时候,他的功能变得强大了。

    =====================================================================

    附 表:

    [ -a FILE ]  如果 FILE 存在则为真。 
    [ -b FILE ]  如果 FILE 存在且是一个块特殊文件则为真。 
    [ -c FILE ]  如果 FILE 存在且是一个字特殊文件则为真。 
    [ -d FILE ]  如果 FILE 存在且是一个目录则为真。 
    [ -e FILE ]  如果 FILE 存在则为真。 
    [ -f FILE ]  如果 FILE 存在且是一个普通文件则为真。 
    [ -g FILE ] 如果 FILE 存在且已经设置了SGID则为真。 [ -h FILE ]  如果 FILE 存在且是一个符号连接则为真。