当前位置: 技术问答>linux和unix
使用test如何识别变量为空字符串?
来源: 互联网 发布时间:2016-11-29
本文导语: echo "please input ......" read a test -n $a echo $? 以上是我想测式下变量a是否为一个空字符串,当输入一些字符串的时候,$?为0,但如果什么也不输,直接为回车的时候,也就是说a什么也没有,但是这样就会出错,我的目的是...
echo "please input ......"
read a
test -n $a
echo $?
以上是我想测式下变量a是否为一个空字符串,当输入一些字符串的时候,$?为0,但如果什么也不输,直接为回车的时候,也就是说a什么也没有,但是这样就会出错,我的目的是想如果a为非空的话,$?为0,如果a为空的话,就让$?为1,不知道怎么弄,请高手帮帮忙!万分感激!
read a
test -n $a
echo $?
以上是我想测式下变量a是否为一个空字符串,当输入一些字符串的时候,$?为0,但如果什么也不输,直接为回车的时候,也就是说a什么也没有,但是这样就会出错,我的目的是想如果a为非空的话,$?为0,如果a为空的话,就让$?为1,不知道怎么弄,请高手帮帮忙!万分感激!
|
改成
test -n "$a"
因为如果直接回车 等于没有输入那么test -n $a 就变成了test -n 语句当然会报错
另外 你不用判断$?了 直接用这个表达式判断就可以了!!
if test -n "$a"
then
echo "不为空"
else
echo "为空"
fi