在Shell中的test命令为什么-n参数没有用?

wd983003 2006-04-03 05:44:13
#!/bin/sh
#
aa=""
if test -n $aa
then
echo "aa"
else
echo "bb"
fi


以上一段脚本中,不管aa是什么值,最终结果都显示"aa"
如果将-n换成-z就有效了。
why?
...全文
270 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fierygnu 2006-04-21
  • 打赏
  • 举报
回复
to :xdspower()
问题不在这里。因为$aa是空,if [ -n ]就是语法错误,if [ -n "" ]就正确了。
xdspower 2006-04-21
  • 打赏
  • 举报
回复
bash中标准的变量引用语法是${varname} 这样可以防止变量名匹配错误
if ( test -n ${aa} ) 看看
xdspower 2006-04-21
  • 打赏
  • 举报
回复
也是啊,不过我觉得用"${varname}"的形式可能更好
kingofworl 2006-04-20
  • 打赏
  • 举报
回复
学习
bat603 2006-04-20
  • 打赏
  • 举报
回复
if test -n "$aa" 或者 if [ -n "$aa"]
fierygnu 2006-04-04
  • 打赏
  • 举报
回复
if test -n $aa
改成
if test -n "$aa"

19,612

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧