为什么我在括号printf和计算器函数上的此bash命令中遇到语法错误



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

printf "%.3fn" "$(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和$ $并在其上执行划分,然后将值打印为3个小数点。

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

您可以使用:

printf "%.3fn" "$(bc -l <<< "($sum / $total)")"

最好像下面这样做。更清楚

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

最新更新