shell多条件判断语句出错,大家帮忙看看哪里有问题?

#我在测试无if嵌套循环的计算器中,有一条语句错误num1=1num2=2​test1=$(echo"$num1"|sed's/[0-9]//g')̴... #我在测试无if嵌套循环的计算器中,有一条语句错误
num1=1
num2=2
​test1=$( echo "$num1" | sed 's/[0-9]//g' )
​test2=$( echo "$num2" | sed 's/[0-9]//g' )
​[ -n"$num1" -a -n"$num2" -a -n"$a" -a -z"test1" -a -z"test2" -a "$a" == "+" ] && echo 0
#在这条判断语句中,test1是变量,但是我没用变量符$时 该语句能执行成功, 在如下语句我用了$符引用变量却报错了,为什么?

[ -n"$num1" -a -n"$num2" -a -n"$a" -a -z"$test1" -a -z"$test2" -a "$a" == "+" ] && echo 0
-bash: [: too many arguments​
展开
 我来答
yyiinn1
2018-07-05 · TA获得超过157个赞
知道小有建树答主
回答量:241
采纳率:64%
帮助的人:90.9万
展开全部

你的$test1和$test2这两个参数的值都是空。

你的第二条命令实际上是这样的

[ -n"$num1" -a -n"$num2" -a -n"$a" -a -z -a -z -a "$a" == "+" ] && echo 0

所以就报错了。

yudukbin
2018-06-30 · TA获得超过172个赞
知道小有建树答主
回答量:88
采纳率:62%
帮助的人:26.9万
展开全部
空格键问题,-n 变量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式