EShell is a Lisp REPL. The following works as you’d expect from such a REPL:
$ (message "hello world") "hello world"
However, in a shell, we care more for simplicity and speed of typing that we do for semantic clearness, so we can, in this case, drop the parens with the same results:
$ message "hello world" "hello world"
Functions that begin with eshell/ are available in Eshell without the prefix, so calling the eshell/echo function makes the shell experience less surprising:
$ echo "hello world" "hello world"
If you put it in parens, you need to give it the full name:
$ (eshell/echo "hello world") "hello world"
What about types? In a normal shell, everything is a string, but EShell has a foot in both worlds:
$ echo hello world ("hello" "world")
... continue reading