I am working on emacs-27.1 of windows 10.

PS C:\Users\gaowei> emacs.exe --version
GNU Emacs 27.1

Within the eshell, I tried:

~/.doom.d [master] λ which echo
eshell/echo is a compiled Lisp function in ‘em-basic.el’.

~/.doom.d [master] λ echo $HOME

It works properly until I run to nest the commands as:

~/.doom.d [master] λ echo $(echo $HOM)
Symbol’s function definition is void: echo

What's the problem? echo does exist in eshell but report void function.

1 Answer 1


That's syntax of eshell eshell documentation which is intended to be an alternative to the IELM.
So () is designed for elisp functions to distinguish commands.

λ (sqrt 11)

on the other hand, curly brackets are designed for commands:

λ echo ${echo $HOME}

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.