如何让 ZSH 获取我最新版本的 Bash

问题描述 投票:0回答:1

我当前的 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
bash macos shell zsh zshrc
1个回答
0
投票

当您执行

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

© www.soinside.com 2019 - 2024. All rights reserved.