• shell 中的[: -eq: unary operator expected

    if [[ "$myvar" -eq "OK" ]]  
    

    使用双括号符

  • 常用的条件判断

    -eq           //等于
    -ne           //不等于
    -gt            //大于 (greater )
    -lt            //小于  (less)
    -ge            //大于等于
    -le            //小于等于
    

    命令的逻辑关系:

在linux 中 命令执行状态:0 为真,其他为假

逻辑与: && 第一个条件为假时,第二条件不用再判断,最终结果已经有; 第一个条件为真时,第二条件必须得判断; 逻辑或: || 逻辑非: !

字符判断

BRANCH=master

if [ $1 != "" ]; then
        BRANCH=$1
fi

  • 字符串判断

    str1 = str2      当两个串有相同内容、长度时为真
    str1 != str2      当串str1和str2不等时为真
    -n str1        当串的长度大于0时为真(串非空)
    -z str1        当串的长度为0时为真(空串)
    str1           当串str1为非空时为真
    
  • 数字的判断

    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为真
    
  • 文件的判断

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

    -a         与
    -o        或
    !        非
    
    #!/bin/bash
    function PullApi {
        if [ "$1" == 'core' -o "$1" == "zczy" -o "$1" == "wu86" ]; then
    		echo "$1.ok"
        fi
    }
    PullApi zsoss
    PullApi core
    PullApi zczy
    PullApi wu86
    
  • 参数需要用双引号包括,只有双引号内才会被解析

  • 使用 -o 来代表 ||

  • 判断相等用 == 同时,== 两边需要有空格