尝试在 Ubuntu (53-Ubuntu x86_64 x86_64 x86_64 GNU/Linux) 上执行下面列出的 bash 脚本时注意到主题行中提到的错误
#!/bin/bash
read x y
echo $(($x + $y))
然而,同样可以在 Redhat 和 CentOS 上完美运行。
请帮我找出为什么会发生这种情况所有操作系统都有 bash 版本 4.3.11(1)-release
答案1
它会出错,因为您只提供一个输入数字,而不是两个。在这种情况下, read 将此数字分配给变量x
,但y
将保持为空,因此下一行看起来像echo $(($x + ))
。我们知道运算符+
需要两个操作数,但这里y
(第二个)丢失了,因此出现错误operand expected (error token is “+ ”)
。