DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(bash.info) Command Grouping

Info Catalog (bash.info) Conditional Constructs (bash.info) Compound Commands
 
 3.2.4.3 Grouping Commands
 .........................
 
 Bash provides two ways to group a list of commands to be executed as a
 unit.  When commands are grouped, redirections may be applied to the
 entire command list.  For example, the output of all the commands in
 the list may be redirected to a single stream.
 
 `()'
           ( LIST )
 
      Placing a list of commands between parentheses causes a subshell
      environment to be created ( Command Execution Environment),
      and each of the commands in LIST to be executed in that subshell.
      Since the LIST is executed in a subshell, variable assignments do
      not remain in effect after the subshell completes.
 
 `{}'
           { LIST; }
 
      Placing a list of commands between curly braces causes the list to
      be executed in the current shell context.  No subshell is created.
      The semicolon (or newline) following LIST is required.
 
    In addition to the creation of a subshell, there is a subtle
 difference between these two constructs due to historical reasons.  The
 braces are `reserved words', so they must be separated from the LIST by
 `blank's or other shell metacharacters.  The parentheses are
 `operators', and are recognized as separate tokens by the shell even if
 they are not separated from the LIST by whitespace.
 
    The exit status of both of these constructs is the exit status of
 LIST.
 
Info Catalog (bash.info) Conditional Constructs (bash.info) Compound Commands
automatically generated byinfo2html