0
0
Bash Scriptingscripting~5 mins

Subshells (command grouping) in Bash Scripting - Cheat Sheet & Quick Revision

Choose your learning style9 modes available
Recall & Review
beginner
What is a subshell in bash scripting?
A subshell is a separate child shell started by the main shell to run commands in isolation. It allows grouping commands so they run in a new shell environment without affecting the parent shell.
Click to reveal answer
beginner
How do you create a subshell to group commands in bash?
You create a subshell by enclosing commands in parentheses: ( command1; command2 ). This runs the commands inside a new shell process.
Click to reveal answer
intermediate
What happens to variable changes inside a subshell?
Changes to variables inside a subshell do not affect the parent shell. The subshell has its own copy of variables, so changes are lost when the subshell ends.
Click to reveal answer
intermediate
Why use subshells instead of just grouping commands with curly braces {}?
Subshells run commands in a separate environment, isolating changes like variable assignments or directory changes. Curly braces group commands but run in the current shell, so changes persist.
Click to reveal answer
beginner
Example: What is the output of this script? x=5 ( x=10; echo $x ) echo $x
Output: 10 5 Explanation: Inside the subshell, x is set to 10 and printed. Outside, x remains 5 because the subshell's change does not affect the parent shell.
Click to reveal answer
Which symbol is used to create a subshell in bash?
A{ }
B[ ]
C( )
D< >
If you change a variable inside a subshell, what happens to the variable outside?
AIt changes permanently
BIt causes an error
CIt becomes undefined
DIt remains unchanged
What is the main difference between using ( ) and { } for grouping commands?
A( ) runs commands in a subshell; { } runs in the current shell
B( ) runs commands faster than { }
C{ } creates a subshell; ( ) runs in current shell
DNo difference, both are the same
Which of these is a valid subshell command grouping?
A<cd /tmp; ls>
B(cd /tmp; ls)
C[cd /tmp; ls]
D{cd /tmp; ls}
Why might you use a subshell when running commands?
ATo isolate changes so they don't affect the main shell
BTo speed up command execution
CTo permanently change environment variables
DTo avoid typing commands
Explain what a subshell is and how it affects variable changes in bash scripting.
Think about running commands inside parentheses.
You got /3 concepts.
    Describe the difference between grouping commands with ( ) and { } in bash.
    Consider where changes like directory or variable assignments apply.
    You got /3 concepts.