# HG changeset patch # User John Wiegley # Date 986859739 0 # Node ID 433e5fe5454d081a943d69f2f334b8ffeead9e15 # Parent d30baa39a3b4a1f6f7bea977a43a7211dfcc7d2f A few additions. diff -r d30baa39a3b4 -r 433e5fe5454d man/eshell.texi --- a/man/eshell.texi Mon Apr 09 23:36:36 2001 +0000 +++ b/man/eshell.texi Mon Apr 09 23:42:19 2001 +0000 @@ -1,6 +1,6 @@ \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. @@ -529,9 +529,29 @@ * 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