代码之家  ›  专栏  ›  技术社区  ›  StevieD

$BASH_VERSION报告macOS上的旧版本BASH,这是一个应该修复的问题吗?

  •  0
  • StevieD  · 技术社区  · 6 年前

    我已经安装了homebrew的bash包。当我打开一个新的外壳时:

    bash --version 给予 GNU bash, version 5.0.7(1)-release (x86_64-apple-darwin18.5.0)

    which bash 给予 /usr/local/bin/bash 一如预期。

    但是:

    echo $BASH_VERSION 产量 3.2.57(1)-release

    我想知道,对于可能使用此环境变量的脚本,是否应该解决这一问题。

    1 回复  |  直到 6 年前
        1
  •  3
  •   Benjamin W.    5 年前

    这意味着你使用的shell是bash3.2,但是 bash 猛击 然后,在新的外壳里, echo $BASH_VERSION 我想应该是5.0。要更改登录shell,请添加 /usr/local/bin/bash /etc/shells 并使用

    chsh -s /usr/local/bin/bash
    sudo chsh -s /usr/local/bin/bash
    

    一次又一次的登入, $BASH_VERSION

    至于舍邦线,我建议

    #!/usr/bin/env bash
    

    因为它是可移植的,并且将在您的 $PATH .

        2
  •  2
  •   jamieguinan    6 年前

    您的登录shell(请参见 echo $SHELL )可能是 /bin/bash $BASH_VERSION . 如果需要在脚本中使用特定版本,请使用 #!

        3
  •  1
  •   StevieD    6 年前

    我问题的根源是终端应用程序的首选项设置。“命令(完整路径)”设置为 /bin/bash . 设置为“默认登录shell”后, echo $BASH_VERSION 报告了我期望的版本。另一个问题是我愚蠢地运行 bash --version