GNU Info

Info Node: (bashref.info)Command Search and Execution

(bashref.info)Command Search and Execution


Next: Command Execution Environment Prev: Simple Command Expansion Up: Executing Commands
Enter node , (file) or (file)node

Command Search and Execution
----------------------------

   After a command has been split into words, if it results in a simple
command and an optional list of arguments, the following actions are
taken.

  1. If the command name contains no slashes, the shell attempts to
     locate it.  If there exists a shell function by that name, that
     function is invoked as described in Note: Shell Functions.

  2. If the name does not match a function, the shell searches for it
     in the list of shell builtins.  If a match is found, that builtin
     is invoked.

  3. If the name is neither a shell function nor a builtin, and
     contains no slashes, Bash searches each element of `$PATH' for a
     directory containing an executable file by that name.  Bash uses a
     hash table to remember the full pathnames of executable files to
     avoid multiple `PATH' searches (see the description of `hash' in
     Note: Bourne Shell Builtins).  A full search of the directories
     in `$PATH' is performed only if the command is not found in the
     hash table.  If the search is unsuccessful, the shell prints an
     error message and returns an exit status of 127.

  4. If the search is successful, or if the command name contains one
     or more slashes, the shell executes the named program in a
     separate execution environment.  Argument 0 is set to the name
     given, and the remaining arguments to the command are set to the
     arguments supplied, if any.

  5. If this execution fails because the file is not in executable
     format, and the file is not a directory, it is assumed to be a
     SHELL SCRIPT and the shell executes it as described in Note: Shell
     Scripts.

  6. If the command was not begun asynchronously, the shell waits for
     the command to complete and collects its exit status.



automatically generated by info2www version 1.2.2.9