#2
tlliqi2014-08-09 15:15
|
脚本里写
程序代码:
#!/bin/sh
STR=""
if test -n $STR;
then
echo $STR
else
echo null
fi;
STR=""
if test -n $STR;
then
echo $STR
else
echo null
fi;
但结果却是输出$STR了,去掉-n或给$STR加上""的话结果就没问题了
本以为对于字符串的判断都应该加上"",但是同样是判断字符串,使用参数 -z 却没有问题,如
程序代码:
#!/bin/sh
STR=""
if test -z $STR;
then
echo null
else
echo $STR
fi;
STR=""
if test -z $STR;
then
echo null
else
echo $STR
fi;
这是什么原因呢?是因为STR为空不加""时,相当于test没有接受第二个参数吗?所以返回无参时的默认值?这些默认值又是什么?