当我在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
很高兴根据需要提供其他信息。谢谢!
答案 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行为)。