我正在尝试编写一个快速脚本来将简单的计算传递给 bc,但是当我尝试涉及括号的计算时,出现以下错误:
-bash: syntax error near unexpected token `('
如何编写脚本来转义给定的任何字符?
这是我现在的代码:
calc()
{
echo "$*" | bc
}
我这样调用它:
calc 100 + 10 + (10 * 10)
引用输入是可行的,但我不想这样做(我显然很懒,试图让数字相加变得更容易)。
最佳答案
calc '100 + 10 + (10 * 10)'
calc 100 + 10 + '(10 * 10)'
calc 100 + 10 + \(10 \* 10\)
错误不在 calc()
中,而是在调用它的代码中。括号和星号是 shell 中的特殊字符,因此需要用引号引起来。在 calc()
中您无能为力,因为 shell 在调用它之前就已经呕吐了。
Quoting the input works but I'd like to not have to.
这是不可避免的。抱歉!
关于bash - 输入中的转义括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55831133/