假设我有以下代码
for n in {50..300};
do
(( a = 0.3*$n))
#do something
echo $n
echo $a
done
当我运行代码时,我收到了一个错误,它说
((: a = 0.3*50: syntax error: invalid arithmetic operator (error token is ".3*50")
我知道它必须是因为0.3或任何十进制数字无法识别或者可能是由于某些格式问题,因为我之前尝试((a = $n / 2))
工作正常,非常感谢,如果有人可以给我一个提示。
答案 0 :(得分:1)
虽然这是一个非常简单的语法问题,但使用shellcheck.net来调试此类错误会非常有效。您的错误行必须类似于
a=$(echo "0.3*$n" | bc ) # 'echo' to print an arithmetic expression
# feeding it to 'bc' for the actual computation.