I installed emacs in ubuntu (using sudo apt-get install emacs). I am havine the problem that when I try to run a shell command from within emacs (for example M-! ls
) the output is preceded by this:
bash: cannot set terminal process group (-1): Invalid argument
bash: no job control in this shell
In my .emacs
I have the option (setq shell-command-switch "-ic")
. This is so that I can presumably use my aliases as well as commands. This has not given me issues at work and it lets me use my aliases. How can I use my aliases but avoid this problem?
I guess that by setting your shell-command-switch like that, you are executing code paths in your
.profile
or system profile which depend on job control in shells.I would fix this error by defining the aliases you need in the correct code paths so that that appear in shells which are not started with
-i
You could try to swap
-i
with--rcfile .aliases
or something similar so thatalias
in emacs does not differ fromalias
in your login shells. If your .bashrc has important stuff for your work, create a file like .bashrc.emacs with the contentand point to that file with
--rcfile .bashrc.emacs
in your(setq)
instruction.Where did you define your aliases? Ubuntus .bashrc reads .bash_aliases and that should happen also to non-interactive shells.