有时,在计算带有常数的自我消隐运算++时遇到问题,这对我来说很奇怪。 (这不是原始代码,我只是复制了类似外观的行)
#!/bin/bash
echo "out1="$((++5))
echo "out2="$((5++))
代码段看起来像;当我执行它时,得到以下结果:
$ bash test.sh
out1=5
test.sh: line 3: 5++: syntax error: operand expected (error token is "+")
bash版本为: GNU bash,版本4.2.46(2)-发行版(x86_64-redhat-linux-gnu)
我想知道:
谢谢。
答案 0 :(得分:1)
我不能肯定地说,我不想浏览源代码来了解算术表达式解析器。我的猜测是:
+
和-
符号,以确定它是正数还是负数。我怀疑解析器看到$(( +(+5) ))
$(( (5) + (+) ))