When we export a local variable declared within a current shell does it get passed to future sub shells,processes , child processes or future child processes? I was told it get passed to future sub shells. Is it correct?
Advertisement
Answer
This simple test will answer you by itself:
JavaScript
x
$ VAR1="Hello, World!"
$ echo "${VAR1}"
Hello, World!
$ bash
$ echo "${VAR1}"
$ export VAR1="Hello, World!"
$ echo "${VAR1}"
Hello, World!
$ bash
$ echo "${VAR1}"
Hello, World!
$
Breaking it down:
No export …
JavaScript
$ VAR1="Hello, World!"
$ echo "${VAR1}"
Hello, World!
$ bash
$ echo "${VAR1}"
$
… leads to VAR1
not being defined in the child.
While with export
…
JavaScript
$ export VAR1="Hello, World!"
$ echo "${VAR1}"
Hello, World!
$ bash
$ echo "${VAR1}"
Hello, World!
$
… leads to VAR1
being defined in the child.