空值 Bash

Empty Value Bash

我有一个 bash 脚本,如下所示

while read kk;
do 
    gname=$(host -t CNAME $kk | grep 'an alias' | awk '{print $NF}')
    if [ -n "$gname " ];
    then
        echo "Cname found is : $gname"
    fi
    echo "------------------------"
done

即使 gname 有一个值,我也会得到如下所示的输出

------------------------
Cname found is :
------------------------
Cname found is : example.routing.advocacytools.co
------------------------
Cname found is : api.example.com

对于输出中的第一行,变量 cname 有一个空 space 或空白值但有一个 ip 地址,如果有,我如何以这种方式过滤掉输出没有 cname 值,只有 ip 地址输出应该是

There is no cname , ip address is XXX.XXX.XXX.XXX

OS : MacOSX

因为 $gname 之后的 space 即使 gname 为空,引号之间的字符串包含 space 并且不为空

比较

[ -n ' ' ] && echo ok
[ -n '' ] && echo ok