我正试图绕过bash,但我正在努力争取一些核心基础。
我可以看到算术语句由双括号
定义((5-3))
但如果我在echo
尝试shift
或我们,我会收到错误
echo ((5-3))
-bash: syntax error near unexpected token `('
在示例中,它显示在前面加上美元符号将使其正常工作
echo $((5-3))
为什么?语法看起来好像我将算术应用于空白变量然后应用到echo
函数。为什么我不能将算术结果传递给echo
函数?我怎么知道何时在其他实例中用美元符号作为算术语句的前缀。
请原谅我的无知。我已经习惯了网络开发语言,而Bash就是如此不同。
答案 0 :(得分:3)
((...))
是算术表达式。
$((...))
是算术扩展。
不同之处在于表达式本身就是一个单位,但扩展只会被一个值替换。
这与。之间的区别是一样的。
$ echo foo
foo
和
$ $(echo foo)
-bash: foo: command not found
答案 1 :(得分:1)
当您不仅需要计算而且还要返回它的值
时,需要这样做答案 2 :(得分:1)
双括号用于告诉bash处理大括号内的内容是一个整数,'$'符号用于显示结果或算术中的结果整数