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 来代表 ||
判断相等用 == 同时,== 两边需要有空格