为什么在括号 printf 和计算器函数的 bash 命令中出现语法错误?

Why am I getting a syntax error in this bash command on parentheses printf and calculator function?

为什么我在这行脚本中遇到 ( 错误?

printf "%.3f\n" "$(bc -l <<< ($sum / $total))"

错误:

solution.sh: command substitution: line 11: syntax error near unexpected token `('
solution.sh: command substitution: line 11: `bc -l <<< ($sum / $total))"'

期望的行为是获取数值变量 $sum 和 $total 并对它们执行除法,然后将值打印到小数点后 3 位。

这是因为 bc -l 需要作为单个字符串输入,但 ($sum / $total) 未加引号并被拆分为多个单词。

您可以使用:

printf "%.3f\n" "$(bc -l <<< "($sum / $total)")"

最好像下面那样做。会更清楚

result=$(bc -l <<< ($sum / $total))
printf "%.3f\n" "$result"