我的bash init脚本(〜/ .profile)包含重要的初始化,但每当我在emacs中使用shell-command或编译时,都不会读取该初始化文件,如果没有这些初始化,我的emacs中的bash命令将会失败:(我如何强制emacs执行我用于shell命令的shell的init文件?
澄清:我不是在谈论Mx shell,当我将.profile符号链接到.emacs_bash时,它正好读取我的init文件.
将初始化例程移动到您的~/.bashrc
文件中
然后添加该行
source ~/.bashrc
进入你的~/.bash_profile
文件.有关何时加载哪些启动文件的详细说明,请参阅bash手册页.关键是交互式和非交互式 shell之间的区别,以及登录和非登录 shell 之间的区别.
通常,在启动新shell时运行时.bash_profile
使用shell登录系统时.bashrc
运行(OS X终端应用程序是此规则的例外,因为它.bash_profile
为每个新终端实例运行).有关文章形式的更多信息,请查看此处.
我正在使用Mac,shell-command没有执行.bashrc,也没有执行.bash_profile,我搜索了一个解决方案来解决我的PATH问题.
把它放在你的.emacs中:( setenv"PATH"(shell-command-to-string"source~/.bashrc; echo -n $ PATH"))
更多细节,请参阅:如何使emacs运行我的〜/ .bash_profile