来自.bashrc的命令在Emacs中不可用

来自.bashrc的命令在Emacs中不可用,emacs,bash,Emacs,Bash,我在~/.bashrc中定义了一些别名和函数 我使用emacs-nw从终端窗口启动emacs 当我执行M-x shell命令时,来自~/.bashrc的别名和函数不可用,但给出了一个“未找到命令” 我已经在谷歌上搜索了很多次,但是我遇到的所有帖子都说,如果我理解正确的话,~/.bashrc应该是这个应用的地方(而不是~/.profile或~/.bash_profile) 我缺少什么?别名仅在交互式shell中可用-来自bash手册页的快照: 当 shell不是交互式的,除非 已设置“展开别名壳”

我在~/.bashrc中定义了一些别名和函数

我使用
emacs-nw从终端窗口启动emacs

当我执行
M-x shell命令时
,来自~/.bashrc的别名和函数不可用,但给出了一个“未找到命令”

我已经在谷歌上搜索了很多次,但是我遇到的所有帖子都说,如果我理解正确的话,~/.bashrc应该是这个应用的地方(而不是~/.profile或~/.bash_profile)


我缺少什么?

别名仅在交互式shell中可用-来自bash手册页的快照:

当 shell不是交互式的,除非 已设置“展开别名壳”选项 使用shopt (请参见下面SHELL内置命令下的shopt说明)


如果您从交互式shell(其中执行了.bashrc等)启动Emacs,那么来自.bashrc的命令应该可用于
shell命令
shell
,至少对我来说是这样

但是,正如另一个答案所说,在emacs中没有真正的方法获得.bashrc环境。有一些关于.emacs_bash文件的文档,但对我来说从来都不起作用


好吧,我误解了你的问题。如果通过更改.bashrc中的路径来查找函数和别名,而不是命令,那么非交互性就是问题所在。我想您可以将默认参数更改为shell命令(查看
explicit bash args
),以使bash具有交互性,但这可能会产生意想不到的后果