我当前的 shell 是 ZSH,它默认使用 Bash 版本 3.2.x。我使用的是 macos Sonoma 版本 14.3.1。
对于我尝试运行的 shell 命令之一,我当前收到以下错误:
unbound variable
,这需要使用 >=4 的 bash 版本才能使用 associative arrays
的功能。
我已经使用
bash
安装了最新版本的 brew
,并且当前在此路径上可用:
/opt/homebrew/Cellar/bash/5.2.26/bin/bash
在我的
.zshrc
中,我尝试添加export PATH="$PATH:/opt/homebrew/Cellar/bash/5.2.26/bin"
作为将路径附加到我想要使用的最新版本的bash的方法
但是当我这样做时
bash --version
我仍然得到 3.2.57:
➜ ~ bash --version
GNU bash, version 3.2.57(1)-release (arm64-apple-darwin23)
Copyright (C) 2007 Free Software Foundation, Inc.
如何配置 ZSH 加载/使用最新的 bash 版本来解决
unbound variable
错误?
我的
/etc/shells
如下所示(我更新了它以添加通过brew安装的最新bash版本):
/bin/bash
/bin/csh
/bin/dash
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/opt/homebrew/bin/bash
/opt/homebrew/Cellar/bash/5.2.26/bin/bash
当您执行
export PATH="$PATH:/opt/homebrew/Cellar/bash/5.2.26/bin"
时,您会将新目录作为查找 bash
实例的最后位置,您应该执行 export PATH="/opt/homebrew/Cellar/bash/5.2.26/bin:$PATH
使其成为第一个目录。另外,请确保在您的脚本中顶部有一个 #!/usr/bin/env bash
,而不是其他任何内容,这样它实际上会在您的 PATH
中查找 bash
。