-n : 字符串长度不等于 0 为真 ,助记符 no zero
, example :
VAR1=1;VAR2="" ;[ -n "$VAR1" ];echo $? 为 0 true
VAR1=1;VAR2="" ;[ -n "$VAR2" ];echo $? 为 1 false .
-z : 字符串长度等于 0 为真 ,助记符zero
, example :
VAR1=1;VAR2="";[ -z "$VAR1" ] ;echo $? 为 1
VAR1=1;VAR2="";[ -z "$VAR2" ] ;echo $? 为 0 true .
需要注意的是,在[]中,使用-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