if中的-n -z linux_Shell

==========1 混淆的-n  -z=================

-n 表示这个变量或者字符串是否不为空。
-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

======================收工=====================

原文地址:https://www.cnblogs.com/horizonli/p/5251952.html