经测试,加了引号就正确了。<br>“在中括号内的变量,最好都以双引号括号起来”<br>见鸟哥p382<br><br><div class="gmail_quote">在 2011年12月20日 下午3:22,sanye <span dir="ltr"><<a href="mailto:xbapj1@gmail.com">xbapj1@gmail.com</a>></span>写道:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

我怎么记得是<br>
<div class="im">if [ -n "$str" ];then<br>
    echo "1"<br>
fi<br>
<br>
if [ -z "$str" ];then<br>
    echo "2"<br>
fi<br>
<br>
</div>而且,OT了吧<br>
<div class="HOEnZb"><div class="h5">On Tue, 2011-12-20 at 15:09 +0800, leon wrote:<br>
> 在学习bash编程时遇到的问题<br>
> 讲解中提示bash脚本中<br>
> -n 当字符串不为空时为真<br>
> -z 当字符串为空时为真<br>
><br>
> 那么以下脚本<br>
> str=""<br>
><br>
> if [ -n $str ]<br>
> then<br>
> echo "1"<br>
> fi<br>
><br>
> if [ -z $str ]<br>
> then<br>
> echo "2"<br>
> fi<br>
><br>
> 执行时会输出<br>
> 1<br>
> 2<br>
> 为什么会两个都输出呢?<br>
> str为空同时也不为空??<br>
> 还是我理解有误或者设置有误??<br>
> ————<br>
> 如果说我们是浪漫主义者,是不可救药的理想主义分子,我们想的都是不可能的事情,那么,我们将一千零一次的回答,是的,我们就是这样的人。忠于理想,面对现实。<br>
><br>
> 若为自由故,需有过墙梯 <<a href="http://goo.gl/5liFC" target="_blank">http://goo.gl/5liFC</a>><br>
> -------------- 下一部分 --------------<br>
> 一个HTML附件被移除...<br>
> URL: <<a href="https://lists.ubuntu.com/archives/ubuntu-zh/attachments/20111220/ed116556/attachment.html" target="_blank">https://lists.ubuntu.com/archives/ubuntu-zh/attachments/20111220/ed116556/attachment.html</a>><br>


<br>
<br>
<br>
--<br>
ubuntu-zh mailing list<br>
<a href="mailto:ubuntu-zh@lists.ubuntu.com">ubuntu-zh@lists.ubuntu.com</a><br>
<a href="https://lists.ubuntu.com/mailman/listinfo/ubuntu-zh" target="_blank">https://lists.ubuntu.com/mailman/listinfo/ubuntu-zh</a><br>
</div></div></blockquote></div><br>