使用test如何识别变量为空字符串?

korli319 2011-05-16 01:57:58
echo "please input ......"

read a

test -n $a

echo $?

以上是我想测式下变量a是否为一个空字符串,当输入一些字符串的时候,$?为0,但如果什么也不输,直接为回车的时候,也就是说a什么也没有,但是这样就会出错,我的目的是想如果a为非空的话,$?为0,如果a为空的话,就让$?为1,不知道怎么弄,请高手帮帮忙!万分感激!

...全文
99 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
korli319 2011-05-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 steptodream 的回复:]
test -n $a
改成
test -n "$a"

因为如果直接回车 等于没有输入那么test -n $a 就变成了test -n 语句当然会报错
另外 你不用判断$?了 直接用这个表达式判断就可以了!!
if test -n "$a"
then
echo "不为空"
else
echo "为空"
fi
[/Quote]


兄弟,你的回答太神速了,谢谢,你的方法很有效!

rucypli 2011-05-16
  • 打赏
  • 举报
回复
test -z $a
zz760310 2011-05-16
  • 打赏
  • 举报
回复
楼主辛苦!分儿!严重需要!
ak_kay 2011-05-16
  • 打赏
  • 举报
回复
test -n "$a" >/dev/null
echo $?
steptodream 2011-05-16
  • 打赏
  • 举报
回复
test -n $a
改成
test -n "$a"

因为如果直接回车 等于没有输入那么test -n $a 就变成了test -n 语句当然会报错
另外 你不用判断$?了 直接用这个表达式判断就可以了!!
if test -n "$a"
then
echo "不为空"
else
echo "为空"
fi

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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