0

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?

Char
  • 123
  • 10

2 Answers2

2

Just try?

$ export foo=bar
$ bash
$ echo $foo
bar
$ bash
$ echo $foo
bar
$ exit
$ exit
$

tl;dr: Yes.

Amadan
  • 191,408
  • 23
  • 240
  • 301
1

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.

pah
  • 4,700
  • 6
  • 28
  • 37