如何修复 OS X Lion 上的终端未加载 ~/. bashrc

每当我使用 Cmd + T在 Terminal 中打开一个新的选项卡时,它都会在与前一个选项卡相同的目录中打开 bash。当我在 ~目录中时,这种方法工作得很好,但是如果我在其他任何地方,加载 .bashrc时就会出错

Last login: Sat Oct 15 21:10:00 on ttys002
-bash: .bashrc: No such file or directory
Jakub-Arnolds-MacBook-Pro:projects darth$

看起来 .bashrc是通过相对路径加载的,而不是绝对路径,因为如果我加载 source ~/.bashrc,一切都会顺利进行。

loaded bashrc

我认为这是一个 OS X Lion 相关的问题,因为在从雪豹升级之前,我没有同样的问题。但这可能是由于终端总是打开在 ~,我不记得如果它试图打开相同的目录。

然而问题仍然是一样的,我怎样才能使终端负载 ~/.bashrc通过绝对路径,而不是相对的?

105628 次浏览

终端打开一个登录 shell。这意味着,~/.bash_profile将被执行,而 ~/.bashrc不会。

大多数系统的解决方案是“要求”~/.bash_profile中的 ~/.bashrc: 只要把这个片段放在 ~/.bash_profile中:

[[ -s ~/.bashrc ]] && source ~/.bashrc

我的 ~/.bash_profile中有以下内容:

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

如果我得的是 .bashrc而不是 ~/.bashrc我会看到和你一样的症状。

.bashrc重命名为 .profile(或者将后者软连接到前者)也可以达到同样的效果。