\input texinfo @c -*-texinfo-*-
-@c "@(#)$Name: $:$Id: eshell.texi,v 1.9 2001/01/28 18:48:45 eliz Exp $"
+@c "@(#)$Name: $:$Id: eshell.texi,v 1.10 2001/03/04 07:07:00 rms Exp $"
@c Documentation for Eshell: The Emacs Shell.
@c Copyright (C) 1999, 2000 Free Software Foundation, Inc.
* Scripts::
@end menu
+Essentially, a command shell is all about invoking commands---and
+everything that entails. So understanding how Eshell invokes commands
+is the key to comprehending how it all works.
+
@node Invocation, Completion, Commands, Commands
@section Invocation
+Unlike regular system shells, Eshell never invokes kernel functions
+directly, such as @code{exec(3)}. Instead, it uses the Lisp functions
+available in the Emacs Lisp library. It does this by transforming the
+command you specify into a callable Lisp form.@footnote{To see the Lisp
+form that will be invoked, type: @samp{eshell-parse-command "echo
+hello"}}
+
+This transformation, from the string of text typed at the command
+prompt, to the ultimate invocation of either a Lisp function or external
+command, follows these steps:
+
+@enumerate
+@item Parse the command string into separate arguments.
+@item
+@end enumerate
+
@node Completion, Aliases, Invocation, Commands
@section Completion