【问题标题】:difference between $[a-b] and $((a-b)) in bash [duplicate]bash中$ [a-b]和$((a-b))之间的区别[重复]
【发布时间】:2017-04-26 04:07:15
【问题描述】:

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

a=4
b=1
echo $[a-b] # => 3

a=4
b=1
echo $((a-b)) # => 3

那么 $[] 运算符是干什么用的,和 $(()) 有什么区别?

在我的 zsh shell 提示符中,当我打开它们中的任何一个而不关闭它们时,我已经编写了 mathsubst

【问题讨论】:

    标签: bash math operator-keyword


    【解决方案1】:

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

    算术扩展允许对算术表达式求值 和结果的替换。算术的格式 展开是:

              $((expression))
    

    旧格式 $[expression] 已弃用并将在 即将推出的 bash 版本。

    【讨论】:

    • 即使在不久前从手册页中删除了弃用警告,尽管从 bash 4.4 开始仍支持该语法。
    猜你喜欢
    • 1970-01-01
    • 2014-12-05
    • 2019-12-18
    • 1970-01-01
    • 1970-01-01
    • 2016-05-04
    • 1970-01-01
    • 2012-06-26
    • 2017-12-24
    相关资源
    最近更新 更多