What is a Subshell?

From Linux Shell Scripting Tutorial - A Beginner's handbook
Revision as of 21:12, 22 September 2009 by Admin (talk | contribs)
Jump to navigation Jump to search
  • Whenever you run a shell script, it creates a new process called subshell.
  • A Subshell can be used to do parallel processing.
  • If you start another shell on top of your current shell, it can be referred to as a subshell. Type the following command to see subshell value:
echo $BASH_SUBSHELL

OR

echo "Current shell: $BASH_SUBSHELL"; ( echo "Running du in subshell: $BASH_SUBSHELL" ;cd /tmp; du 2>/tmp/error 1>/tmp/output)

Exporting Functions and Variables

A subshell does not inherit a variable's setting. Use the export command to export variables and functions to subshell:

WWWJAIL=/apache.jail
export $WWWJAIL
die() { echo "$@"; exit 2; } 
export -f die