bash脚本在算术运算中使用十进制数

时间:2016-10-05 07:05:00

标签: bash

假设我有以下代码

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))工作正常,非常感谢,如果有人可以给我一个提示。

1 个答案:

答案 0 :(得分:1)

虽然这是一个非常简单的语法问题,但使用shellcheck.net来调试此类错误会非常有效。您的错误行必须类似于

a=$(echo "0.3*$n" | bc )        # 'echo' to print an arithmetic expression
                              # feeding it to 'bc' for the actual computation.