运算符描述示例
==等于["a" == "a"]为 true
!=不等于["a" != "a"]为 false
>大于,判断字符串时根据ASCII 码表顺序,不常用在[]表达式中:[ 2 \> 1 ]为 true
在[[]]表达式中:[[ 2 > 1 ]]为 true
在(())表达式中:(( 3 > 2 ))为 true
<小于,判断字符串时根据ASCII 码表顺序,不常用在[]表达式中:[ 2 \< 1 ]为 false
在[[]]表达式中:[[ 2 < 1 ]]为 false
在(())表达式中:(( 3 < 2 ))为 false
>=大于等于在(())表达式中:(( 3 >= 2 ))为 true
<=小于等于在(())表达式中:(( 3 <= 2 ))为 false
-z字符串长度等于 0 为真VAR1=1;VAR2=""
[ -z "$VAR1" ]为 false
[ -z "$VAR2" ]为 true
str字符串存在为真VAR1=1;VAR2=""
[ $VAR1 ]为 true
[ $VAR2 ]为 false

需要注意的是,使用-z 或-n 判断字符串长度时,变量要加双引号。
举例说明:

# [ -z $a ] && echo yes || echo no 
yes
# [ -n $a ] && echo yes || echo no 
yes


# 加了双引号才能正常判断是否为空
# [ -z "$a" ] && echo yes || echo no 
yes
# [ -n "$a" ] && echo yes || echo no 
no


# 使用了双中括号就不用了双引号
# [[ -n $a ]] && echo yes || echo no 
no
# [[ -z $a ]] && echo yes || echo no 
yes