bash中$ [ab]和$((ab))之间的差异

Uly*_* BN 2 math bash operator-keyword

我不知道这个运算符$ []并且找不到它的相关信息.但是我知道接下来的两个代码会给出相同的输出

a=4
b=1
echo $[a-b] # => 3
Run Code Online (Sandbox Code Playgroud)

a=4
b=1
echo $((a-b)) # => 3
Run Code Online (Sandbox Code Playgroud)

那么$ []运算符是什么,与$(())有什么区别?

在我的zsh shell提示符中,当我打开它们中的任何一个并且没有关闭它们时,我写了mathsubst.

mar*_*.47 5

Reading man bash表示旧格式$[expression]已弃用,将被删除.否则它们应该是等价的.

算术扩展允许评估算术表达式和结果的替换.算术扩展的格式是:

          $((expression))
Run Code Online (Sandbox Code Playgroud)

旧格式$[expression]已弃用,将在即将推出的bash版本中删除.