Bash Parameters and Variables: Difference between revisions
Line 18: | Line 18: | ||
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. | ||
= | =Local Variables= | ||
The <tt>local</tt> keyword designates a local variable. Local variables can only be declared inside a function. | The <tt>local</tt> keyword designates a local variable. Local variables can only be declared inside a function. |
Revision as of 00:57, 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.
Global variables are not available to sub-shells,
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.
Local Variables
The local keyword designates a local variable. Local variables can only be declared inside a function.
export
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.