Bash Parameters and Variables: Difference between revisions
(→export) |
|||
Line 17: | Line 17: | ||
Declaring a global variable to be exported causes the variable and its value ''to be copied'' in the environment of a invoked sub-shell. The sub-shell gets a copy of the variable, not a reference. Modifying the variable from the sub-shell does not reflect into the value of the global variable maintained by the invoking shell. | Declaring a global variable to be exported causes the variable and its value ''to be copied'' in the environment of a invoked sub-shell. The sub-shell gets a copy of the variable, not a reference. Modifying the variable from the sub-shell does not reflect into the value of the global variable maintained by the invoking shell. | ||
==Variables exported by Sub-Shells== | |||
If a sub-shell invoked from another shell exports a global variable, once the sub-shell exits, the exported variables are discarded, and the invoking shell does not sees them. | |||
=Local Variable= | =Local Variable= |
Revision as of 01:01, 27 May 2016
Internal
Global Variable
Global variables are only maintained within the context of the current shell. Once the shell exits, the global variables are discarded.
The value of a global variable is not available to sub-shells, unless the variable is exported.
export
export VAR=VALUE
Declaring a global variable to be exported causes the variable and its value to be copied in the environment of a invoked sub-shell. The sub-shell gets a copy of the variable, not a reference. Modifying the variable from the sub-shell does not reflect into the value of the global variable maintained by the invoking shell.
Variables exported by Sub-Shells
If a sub-shell invoked from another shell exports a global variable, once the sub-shell exits, the exported variables are discarded, and the invoking shell does not sees them.
Local Variable
The local keyword designates a local variable. Local variables can only be declared inside a function.
Scope
All variables declared in a shell are visible inside the functions executed within that shell and inside functions invoked from function invoked from the shell, recursively.