OS X 上的 Emacs 和 /etc/profile

OS X 上的 Emacs 和 /etc/profile

当我在 Emacs.app 中运行 shell ( M-x shell) 时,生成的 shell 在初始化期间不会读取(或更具体地说source/etc/profile(我在那里有很多 shell 自定义)。

我已经在 ~/.MacOSX/environment.plist 中设置了路径变量,这是让 Emacs.app 读取 $PATH 所必需的,因此我进行了必要的修改以使 Emacs 适应 OS X。这似乎与 PATH 变量没有任何关系,但与 shell 本身的初始化有关。

答案1

好的,以下是我解决问题的方法。它基于StackOverflow 上对这个问题的回答这是我在 Google 上稍微混合搜索词后找到的。我将以下行添加到.bashrc

source /etc/profile

现在一切都正常运转。

编辑:问题发生的原因

我找到了为什么你必须明确强制重击shell 读取 /etc/profile,而不是在调用时读取。以下是来自重击手动的 (man bash):

当启动非登录 shell 的交互式 shell 时,狂欢读取并执行命令˜/.bashrc,如果该文件存在。这可以通过使用−−norc选项。−−rc文件 文件选项将强制狂欢读取并执行命令文件代替˜/.bashrc

可以从这段文字的书写方式(以及之前关于如何调用登录 shell 的内容)推断出,这shell.el不会调用登录 shell。我查找了这方面的证据,shell.el似乎确实如此,重击被调用时-我标志(交互式),但不是- 登录标志。非登录 shell 不会读取.bashrcsource /etc/profile,所以这就是为什么你可以通过输入来解决这个问题.bashrc

相关内容