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

标签 bash math syntax bc

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

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)")"

关于bash - 为什么我在这个 bash 命令的括号 printf 和计算器函数中出现语法错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49636865/

相关文章:

c++ - 圆形和矩形之间的碰撞

javascript - 计算圆上一点的坐标,沿着圆心和圆外另一点之间的线?

java - 有没有办法避免 Java 的 awkard object cast 语法?

bash - 如何将文件分成相等的部分,而不破坏单独的行?

linux - sed: |: 没有那个文件或目录

bash - 如何以方式使用 grep,我只能从文本文件中获取我想要的单词?

bash - 在 .bashrc 中回显时 SCP 不起作用?

java - 0.999...相乘时可以四舍五入到1吗?

python - 谷歌应用引擎: Difficulty with Users API (or maybe just a Python syntax problem)

flutter - Dart中的 “…”是什么意思?