我正在努力理解bash,但在一些基本概念上遇到了困难。
我可以看到算术语句是由双括号定义的
((5-3))
但是如果我尝试 echo
它或在 shift
中使用它,就会出现错误。
echo ((5-3))
-bash: syntax error near unexpected token `('
在示例中,加上美元符号作为前缀可以让它正常工作。
echo $((5-3))
为什么会这样呢?语法看起来像是我对一个空变量进行算术运算,然后再传递给
echo
函数。为什么我不能直接将算术运算的结果传递给 echo
函数呢?在其他情况下,我如何知道何时需要在算术语句前加上美元符号?请原谅我的无知,我太习惯于Web开发语言了,而Bash则完全不同。
$(...)
被称为命令替换。请阅读一些BASH脚本教程。 - anubhava