算术语法错误

时间:2017-02-17 03:28:27

标签: linux bash macos shell

我的数组中包含浮点值:

declare -x args=(20.5 60 14)
total=10000

for i in ${args[@]}; do
    max=$((total/${#args[@]}*i/100)) | bc
done
  

语法错误:算术运算符无效(错误标记为" .5")

使用bc非常多,因为即使在尝试应用此处的建议时它也会失败:

也许我只是不知道我到底在做什么......

1 个答案:

答案 0 :(得分:0)

你的$(( ...))正在告诉bash进行它不应该做的数学运算。而是将整行放在=$(.)的右侧,使内部看起来像echo "..." | bc

   max=$( echo "$total/${#args[@]}*$i/100" | bc)