Next: Command Execution Environment, Previous: Simple Command Expansion, Up: Executing Commands [Contents][Index]
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.
$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 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 searches for a defined shell
function named command_not_found_handle
.
If that function exists, it is invoked in a separate execution environment
with the original command and
the original command’s arguments as its arguments, and the function’s
exit status becomes the exit status of that subshell.
If that function is not defined, the shell prints an error
message and returns an exit status of 127.
Next: Command Execution Environment, Previous: Simple Command Expansion, Up: Executing Commands [Contents][Index]