What is a Subshell?
Revision as of 21:19, 22 September 2009 by Admin (talk | contribs) (→Exporting Functions and Variables)
- 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
# now call script that will access die() and $WWWJAIL
/etc/nixcraft/setupjail -d cyberciti.com