如何修复终端没有在OS X Lion上加载〜/ .bashrc

Jak*_*old 175 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$ 
Run Code Online (Sandbox Code Playgroud)

它看起来像.bashrc通过相对而非绝对路径加载,因为如果我这样做source ~/.bashrc,一切都很顺利.

加载了bashrc

我认为这是与OS X Lion相关的问题,因为在从Snow Leopard升级之前,我没有遇到同样的问题.但这可能是由终端总是打开引起的~,我不记得它是否试图打开同一个目录.

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

ckr*_*use 352

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

大多数系统上的解决方案是"规定"中~/.bashrc~/.bash_profile:只是把这个片段在~/.bash_profile:

[[ -s ~/.bashrc ]] && source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

  • 来自`man bash`: - s file如果文件存在且大小大于零,则为真. (17认同)
  • 任何人都可以解释`[[-s/file/path]]`正在做什么?尝试向谷歌寻求解释并不容易. (8认同)
  • 有所谓的"交互式shell"和"登录shell".你的bash手册(`man bash`)谈论它并解释它,章节INVOCATION(通过键入`/来调用`man bash`之后搜索`INVOCATION` INVOCATION`) (4认同)
  • 我没有看到一个与代码执行情况相关的问题如何通过一行代码解决,是一个编程问题网站的"主题". (3认同)

sco*_*awg 26

重命名.bashrc.profile(或软联后者是前者)也应该做的伎俩.看到这里.


Kei*_*son 14

我有以下内容~/.bash_profile:

if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
Run Code Online (Sandbox Code Playgroud)

如果我有.bashrc不是~/.bashrc,我会看到你看到了同样的症状.