Emacs shell-command输出“无法设置终端进程组”和“此shell中没有作业控制”

时间:2012-02-27 19:52:48

标签: bash emacs debian

当我在Debian 6.0(Squeeze)上的Emacs中运行shell-command时,例如

(shell-command "ls")

输出前面带有

bash: cannot set terminal process group (-1): Invalid argument
bash: no job control in this shell

当将一个shell命令(例如perltidy)应用于缓冲区时,这尤其令人讨厌,因为这些行最终会出现在缓冲区的顶部。

这是一个新安装的Debian 6.0(Squeeze)系统,其中包含来自apt-get的最新emacs。

% uname -a
Linux 2.6.32-5-xen-amd64 #1 SMP Tue Mar 8 00:01:30 UTC 2011 x86_64 GNU/Linux
% emacs --version
GNU Emacs 23.2.1
% dpkg -l | grep emacs
ii  emacs                                   23.2+1-7
ii  emacs23                                 23.2+1-7 
ii  emacs23-bin-common                      23.2+1-7 
ii  emacs23-common                          23.2+1-7 
ii  emacsen-common                          1.4.22

很高兴根据需要提供其他信息。谢谢!

2 个答案:

答案 0 :(得分:5)

没关系,因为这个原因:

(set-variable 'shell-command-switch "-ic")

答案 1 :(得分:0)

我怀疑故事还有更多内容。查看http://old.nabble.com/bash-under-emacs-gives-%22cannot-set-terminal-process-group%22-to33399261.html#a33399456报告的问题(这是针对Cygwin环境的,但底层错误可能会影响Linux和Cygwin上的bash行为)。