Bash Reference Manual. Node: Command Execution Environment

PREVCommand Search and Execution UPExecuting Commands NEXTEnvironment

3.7.3: Command Execution Environment

The shell has an execution environment, which consists of the following:

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.

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.

PREVCommand Search and Execution UPExecuting Commands NEXTEnvironment