终端提示:每次打开新终端时,请运行source ~/.bash_profile。

我安装了一些命令行程序(例如rbenv),但每次我打开一个新的终端标签时,环境似乎会重置。我需要手动加载我的.bash_profile文件:
source ~/.bash_profile
我按照一些教程,在我的.bash_profile中添加了这段代码,但是它没有起作用。
if [ -n "$BASH_VERSION" ] && [ -f $HOME/.bashrc ];then
    source $HOME/.bashrc
fi
这在我的旧Mac上不会发生,我也不知道如何配置。

你说的“不工作”是什么意思?- 它怎么不工作?- 你真的有一个 .bashrc 文件吗? - jksoegaard
你试过关闭Terminal.app然后重新启动吗? - jksoegaard
是的,我已经创建了bashrc文件。(并运行source ~/.bash_profile) - hqt
@jksoegaard 是的。我已经重新启动了终端应用程序。 - hqt
你的问题到底是什么?- 是不是.bash_profile里面的代码没有运行?- 还是你的.bashrc文件里的代码没有运行?你确定它的名字是“.bashrc”而不是“bashrc”(注意前面的点)? - jksoegaard
如果在启动时.bash_profile没有自动加载,那么根据你在问题中描述的更改其内容也不会使其被加载。请问你的.bashrc.bash_profile.profile文件中分别包含了什么内容? - nohillside
3个回答

如果你正在使用oh-my-zsh,默认加载的是~/.zshrc。你只需要在~/.zshrc的末尾添加以下内容即可:
if [ -f ~/.bash_profile ]; then
  . ~/.bash_profile
fi

.bashrc将默认加载,因此如果您的所有内容都在.bash_profile中,请确保它会被加载,因此您需要添加到您的.bashrc

if [ -f ~/.bash_profile ]; then
  . ~/.bash_profile
fi

你可以在~/.zprofile中编辑你的环境,而不是~/.bash_profile。然后,重新打开一个终端。

在MacOS Monterey上,这是唯一对我有效的答案(通过在.zprofile中运行.bashrc)。.bashrc、.bash_profile和.zshrc不能单独运行。 - Joshua M
对我来说,使用.zprofile没问题。 - undefined