GNU Info

Info Node: (bashref.info)Command Execution Environment

(bashref.info)Command Execution Environment


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

Command Execution Environment
-----------------------------

   The shell has an EXECUTION ENVIRONMENT, which consists of the
following:

   * open files inherited by the shell at invocation, as modified by
     redirections supplied to the `exec' builtin

   * the current working directory as set by `cd', `pushd', or `popd',
     or inherited by the shell at invocation

   * the file creation mode mask as set by `umask' or inherited from
     the shell's parent

   * current traps set by `trap'

   * shell parameters that are set by variable assignment or with `set'
     or inherited from the shell's parent in the environment

   * shell functions defined during execution or inherited from the
     shell's parent in the environment

   * options enabled at invocation (either by default or with
     command-line arguments) or by `set'

   * options enabled by `shopt'

   * shell aliases defined with `alias' (Note: Aliases)

   * various process IDs, including those of background jobs (Note:
     Lists), the value of `$$', and the value of `$PPID'


   When a simple command other than a builtin or shell function is to
be executed, it is invoked in a separate execution environment that
consists of the following.  Unless otherwise noted, the values are
inherited from the shell.

   * the shell's open files, plus any modifications and additions
     specified by redirections to the command

   * the current working directory

   * the file creation mode mask

   * shell variables marked for export, along with variables exported
     for the command, passed in the environment (Note: Environment)

   * traps caught by the shell are reset to the values inherited from
     the shell's parent, and traps ignored by the shell are ignored


   A command invoked in this separate environment cannot affect the
shell's execution environment.

   Command substitution and asynchronous commands are invoked in a
subshell environment that is a duplicate of the shell environment,
except that traps caught by the shell are reset to the values that the
shell inherited from its parent at invocation.  Builtin commands that
are invoked as part of a pipeline are also executed in a subshell
environment.  Changes made to the subshell environment cannot affect
the shell's execution environment.

   If a command is followed by a `&' and job control is not active, the
default standard input for the command is the empty file `/dev/null'.
Otherwise, the invoked command inherits the file descriptors of the
calling shell as modified by redirections.


automatically generated by info2www version 1.2.2.9