我试图编写一个快速脚本以将简单的计算传递到BC,但是当我尝试使用方括号进行计算时,出现以下错误:
-bash:意外令牌'('
附近的语法错误
如何编写脚本以转义给它的任何字符?
这是我现在拥有的代码:
calc()
{
echo "$*" | bc
}
我用类似这样的名称来称呼它
calc 100 + 10 + (10 * 10)
引用输入有效,但是我不想(我很懒,试图使加数变得容易)。
答案 0 :(得分:2)
calc '100 + 10 + (10 * 10)'
calc 100 + 10 + '(10 * 10)'
calc 100 + 10 + \(10 \* 10\)
错误不在calc()
中,而在调用它的代码中。括号和星号是外壳中的特殊字符,因此您需要引用它们。在calc()
内您无能为力,因为shell甚至在调用它之前就已经开始倒空。
引用输入有效,但我不想这样做。
这是不可避免的。抱歉!