I want to execute the source shell command from the eshell environment in Emacs. But the source is also a lisp function, so the two command confilicts, and eshell always execute the source function, instead of the source shell command.

How to prevent this?

1 Answer 1


Just found this blog. Quote:

All commands evaluated by Eshell have an evaluation order, which is an ordered list your command must pass through to determine what part of Eshell handles it. If there is nothing on the list that wants to evaluate your command, you will be told your command is invalid.

So the problem is that the lisp source function comes before the source command. To fix this, we need to tell eshell explicitly that we want to execute a shell command. And the answer is in this variable:

eshell-explicit-command-char (default is *)

  • Please explain this answer more so that future readers will be able to follow it.
    – Dan
    Mar 4, 2017 at 13:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.