我在 UNIX 中使用 bc 命令来解析一些数学表达式。我有两个小功能:
function bashcalc {
echo $@ | bc -l
}
function2 {
...
catMinusMouse=$(bashcalc "$cat_angle - $mouse_angle")
cos=$(cosine $catMinusMouse)
val=$(bashcalc "$cat_radius * $cos") ##PARSE ERROR
...
}
当我尝试运行 val 之后的表达式时,我得到了很多“(standard_in)1:解析错误”。
我的第一个想法是星号是问题,所以我试图逃避它。然而,这给了我一个非法字符错误。
解决方案最终删除了所有的空白
val=$(bashcalc "$cat_radius*$cos")
问题:为什么计算 catMinusMouse(减法运算符周围有空格)有效,而乘法的相同格式无效?