我在UNIX使用BC命令來分析一些數學表達式bc命令的評價。我有兩個小功能:慶典:*
function bashcalc {
echo [email protected] | bc -l
}
function2 {
...
catMinusMouse=$(bashcalc "$cat_angle - $mouse_angle")
cos=$(cosine $catMinusMouse)
val=$(bashcalc "$cat_radius * $cos") ##PARSE ERROR
...
}
當我試圖運行下面的數值的表達,我得到了不少「(standard_in)1:解析錯誤」 S。
我首先想到的是,星號是問題,所以我試圖逃避它。然而,這給了我一個非法的字符錯誤。
該解決方案最終被刪除所有空白的
val=$(bashcalc "$cat_radius*$cos")
問:爲什麼計算catMinusMouse(與周圍的減法運算符空格)工作,同時與乘法相同的格式沒有工作?
嘗試在非空目錄中運行'echo 2 * 3'並查看是否可以計算出結果。 – Mat 2013-05-01 09:54:08
這很有趣。但是,我可以使用轉義工作來完成這項工作嗎?如果我做'$(bashcalc $ cat_radius \ * $ cos)',我不會有效地調用'echo 2 \ * 2',它正確地轉義*並且不會列出目錄嗎? – bobbyjoe93 2013-05-01 10:21:13
問題不在呼叫站點,它在函數中的'$ @'擴展中。 jm666的答案涵蓋了它。 – Mat 2013-05-01 10:25:53