UNIX で bc コマンドを使用して、いくつかの数式を解析しています。私は2つの小さな機能を持っています:
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: parse error" が発生しました。
最初に考えたのは、アスタリスクが問題だと思ったので、エスケープしてみました。しかし、それは私に不正な文字エラーを与えました。
解決策は、すべての空白を削除することになりました
val=$(bashcalc "$cat_radius*$cos")
質問: catMinusMouse の計算 (減算演算子の前後にスペースを使用) が機能するのに、乗算を含む同じ形式が機能しないのはなぜですか?