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

Macos 如何修复终端未在OS X Lion上加载~/.bashrc,macos,bash,terminal,osx-lion,Macos,Bash,Terminal,Osx Lion,每当我使用Cmd+T在终端中打开一个新选项卡时,它都会在与上一个选项卡相同的目录中打开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是通过相对路径而不是绝对路径加载的,因为如果我

每当我使用Cmd+T在终端中打开一个新选项卡时,它都会在与上一个选项卡相同的目录中打开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
,一切都会顺利进行

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


然而问题仍然是一样的,我如何通过绝对路径而不是相对路径使终端加载
~/.bashrc

终端打开一个登录shell。这意味着,
~/.bash\u profile
将执行,
~/.bashrc
不会执行

大多数系统的解决方案是在
~/.bash\u配置文件中“需要”
~/.bashrc
:只需将此代码片段放入
~/.bash\u配置文件中即可:

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

我的
~/.bash\u档案中有以下内容:

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

如果我使用
.bashrc
而不是
~/.bashrc
,我会看到与您看到的症状相同的症状。

重命名
。bashrc
。profile
(或将后者软链接到前者)也应该起作用。请参阅。

有人能解释一下
[[-s/file/path]]
在做什么吗?尝试用谷歌搜索解释并不容易。从
manbash
:-s file True,如果文件存在且大小大于零。“终端打开登录shell”-其他类型的操作系统shell是什么?我在哪里可以找到更多关于它的文档?有所谓的“交互式shell”和“登录shell”。您的bash手册(
manbash
)在调用一章中讨论并解释了它(只需在调用
manbash
后键入
/INVOCATION
)即可搜索
INVOCATION
)我看不出一个关于代码执行情况的问题,通过一行代码解决,是如何“脱离主题”到编程问题站点的。这个问题应该移到apple.SE(如果可能的话?),而不是关闭。@spar我完全同意你的看法,但主持人只移动较新的问题,而不是较旧的问题。请参阅讨论或将其符号化:
cd&&ln-s./.bashrc./.profile
注意,符号化链接对文件路径很敏感,我相信使用上述语法是可行的,但请确保在任何情况下都可以使用绝对路径。呃,不?这些文件有不同的用途。如果您在
.profile
中有Bash语法,您将打破常规
sh