首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >$BASH_VERSION在macOS上报告了旧版本的bash,这是一个应该修复的问题吗?

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

Stack Overflow用户
提问于 2019-05-14 02:24:24
回答 4查看 1.5K关注 0票数 8

我安装了homebrew的bash包。当我打开一个新shell时:

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

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

EN

回答 4

Stack Overflow用户

发布于 2019-05-14 03:12:50

这意味着你所在的shell是Bash3.2,而bash指向的是Bash5.0。尝试bash,然后在新的shell中使用echo $BASH_VERSION -我猜应该是5.0。要更改您的登录shell,请将/usr/local/bin/bash添加到/etc/shells,并使用以下命令更改默认shell

代码语言:javascript
复制
chsh -s /usr/local/bin/bash
sudo chsh -s /usr/local/bin/bash

注销并重新登录后,应更新$BASH_VERSION

至于shebang系列,我推荐

代码语言:javascript
复制
#!/usr/bin/env bash

因为它是可移植的,并且将在您的$PATH中使用第一个Bash。

票数 4
EN

Stack Overflow用户

发布于 2019-05-14 02:39:36

您的登录shell (请参阅echo $SHELL)可能是/bin/bash,这就是设置$BASH_VERSION的shell。如果需要在脚本中使用特定版本,请在#!行中使用完整路径。

票数 3
EN

Stack Overflow用户

发布于 2019-05-14 03:16:15

我的问题的根源是终端应用程序首选项设置。“命令(完整路径)”设置为/bin/bash。在将其设置为“默认登录shell”后,echo $BASH_VERSION报告了我所期望的版本。另一个问题是我愚蠢地在iTerm2中运行bash --version命令,而不是在终端中。因此,它给出了与终端不同的响应。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56117918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档