注册 登录
编程论坛 Linux教室

shell test 命令判断字符串的问题

暂未命名 发布于 2014-08-09 10:55, 2270 次点击
判断字符串是否非空,不是的话输出字符串,为空的话输出null

脚本里写
程序代码:
#!/bin/sh

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为空不加""时,相当于test没有接受第二个参数吗?所以返回无参时的默认值?这些默认值又是什么?
2 回复
#2
tlliqi2014-08-09 15:15
不会
#3
暂未命名2014-08-11 11:35
回复 2 楼 tlliqi
额,是我发错地方了吗?也没看到shell编程的版块啊
1