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:
$ 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 …
$ VAR1="Hello, World!" $ echo "${VAR1}" Hello, World! $ bash $ echo "${VAR1}" $
… leads to VAR1
not being defined in the child.
While with export
…
$ export VAR1="Hello, World!" $ echo "${VAR1}" Hello, World! $ bash $ echo "${VAR1}" Hello, World! $
… leads to VAR1
being defined in the child.