Difference between revisions of "What is a Subshell?"
Jump to navigation
Jump to search
Line 8: | Line 8: | ||
A subshell does not inherit a variable's setting. Use the [[export command]] to export variables and functions to subshell: | A subshell does not inherit a variable's setting. Use the [[export command]] to export variables and functions to subshell: | ||
<source lang="bash">WWWJAIL=/apache.jail | <source lang="bash">WWWJAIL=/apache.jail | ||
− | export | + | export WWWJAIL |
die() { echo "$@"; exit 2; } | die() { echo "$@"; exit 2; } | ||
− | export -f die</source> | + | export -f die |
+ | # now call script that will access die() and $WWWJAIL | ||
+ | /etc/nixcraft/setupjail -d cyberciti.com</source> | ||
[[Category:Catching signals]][[Category:Commands]] | [[Category:Catching signals]][[Category:Commands]] |
Revision as of 21:19, 22 September 2009
- 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