wiki.bash-hackers.org/syntax/ccmd/grouping_subshell.md

36 lines
716 B
Markdown
Raw Normal View History

2023-04-16 10:04:24 +02:00
# Grouping commands in a subshell
## Synopsis
( <LIST> )
## Description
The [list](/syntax/basicgrammar#lists) `<LIST>` is executed in a
separate shell - a subprocess. No changes to the environment (variables
etc...) are reflected in the "main shell".
## Examples
Execute a command in a different directory.
``` bash
2023-04-24 13:27:29 +02:00
echo "$PWD"
( cd /usr; echo "$PWD" )
echo "$PWD" # Still in the original directory.
2023-04-16 10:04:24 +02:00
```
## Portability considerations
- The subshell compound command is specified by POSIX.
- Avoid ambiguous syntax.
``` bash
(((1+1))) # Equivalent to: (( (1+1) ))
```
## See also
- [grouping commands](/syntax/ccmd/grouping_plain)
- [Subshells on Greycat's wiki](http://mywiki.wooledge.org/SubShell)