Grouping commands in a subshell

( <LIST> )

The list <LIST> is executed in a separate shell - a subprocess. No changes to the environment (variables etc…) are reflected in the "main shell".

Execute a command in a different directory.

echo "$PWD"
( cd /usr; echo "$PWD" )
echo "$PWD" # Still in the original directory.

  • The subshell compound command is specified by POSIX.
  • Avoid ambiguous syntax.

(((1+1))) # Equivalent to: (( (1+1) ))

You could leave a comment if you were logged in.