空值 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
我有一个 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