==========1 混淆的-n -z=================
-n 表示这个变量或者字符串是否不为空。
-z 表示这个变量或者字符串为空
-z 表示这个变量或者字符串为空
上面这两句话中最重要的点是不通的
-n 关注的是判断的内容是否不为空 如果判断的内容不为空 则true 如果内容为空 则false
-z 关注的是判断的内容是否为空 如果判断的内容为空 则true 如果内容不为空 则false
====================2.如下代码========================
demo.sh
#/bin/bash
a="abc" if [ -z $a ] then echo "-z $a : string length is zero" else echo "-z $a : string length is not zero" fi
if [ -n $a ] then echo "-n $a : string length is not null" else echo "-n $a : string length is null" fi
执行demo.sh返回如下
-z abc : string length is not zero // -z判断为空为真,而a=abc 因此范围false -n abc : string length is not null // -n判断不为空为真,而a=abc 确实不为空
注意事项:在脚本demo.sh中if [ -z $a ]和if [ -n $a ]中的$a应该加上“”,以防止不必要的麻烦
============================附加内容===================================
a="abc" [ $a ] 就是判断a是不是不为空 不为空则为true
if [ $a ] then echo "$a : string is not empty" else echo "$a : string is empty" fi
返回结果
abc : string is not empty
======================收工=====================