我是来自 Windows 和 Linux 的 macOS 新手。我想使用 bash 并找到了如何在 Catalina 上升级 bash,现在的版本:
GNU bash, version 5.0.18(1)-release (x86_64-apple-darwin19.5.0)
,还安装了coreutils。
我正在尝试在 .bashrc 中设置 direxpand (在 *nix 变体中按预期工作):
shopt -s direxpand
但是当 .bashrc 被获取时,我得到一个错误:
-bash: shopt: direxpand: invalid shell option name
上网查了几个小时也没找到答案,有大神帮忙吗?
更新 28/07/20 14:08 GMT
有趣的是,在发布之前遵循其他建议,我用 brew 安装了 bash,并且必须将我的 shell 设置/usr/local/bin/bash
为终端应用程序才能使用它。
所以输出bash --version
:
GNU bash, version 5.0.18(1)-release (x86_64-apple-darwin19.5.0)
但是echo $BASH_VERSION
给出:
3.2.57(1)-release
所以有什么不对吗?
此外,运行的输出shopt
不显示 direxpand。
格林威治标准时间 28/07/20 20:00 已解决
对于任何有类似问题的人,这就是我发现的。
与 Catalina 一起安装的 bash 不包括我在 linux 中拥有的相同 shell 选项。
完整的解决方案是使用 brew 安装 coreutils 和 bash:
brew install coreutils bash
然后将新版本的 bash 添加到 shell:
sudo vi /etc/shells
添加/usr/local/bin/bash
然后更改您的用户外壳:
chsh -s /usr/local/bin/bash
然后在终端首选项 > 常规 > shells open with > command (complete path) 添加新的 bash/usr/local/bin/bash
之后shopt -s
确认 direxpand 现在是一个选项,并且我的 .bashrc 按预期工作。