当我们导出在当前shell中声明的局部变量时,它是否会传递给将来的子shell,进程,子进程或将来的子进程? 我被告知它会被传递给未来的子弹。这是对的吗?
答案 0 :(得分:2)
试试吧?
$ export foo=bar
$ bash
$ echo $foo
bar
$ bash
$ echo $foo
bar
$ exit
$ exit
$
tl;博士:是的。
答案 1 :(得分:1)
这个简单的测试将自己回答:
$ VAR1="Hello, World!"
$ echo "${VAR1}"
Hello, World!
$ bash
$ echo "${VAR1}"
$ export VAR1="Hello, World!"
$ echo "${VAR1}"
Hello, World!
$ bash
$ echo "${VAR1}"
Hello, World!
$
打破它:
没有出口......
$ VAR1="Hello, World!"
$ echo "${VAR1}"
Hello, World!
$ bash
$ echo "${VAR1}"
$
...导致VAR1
未在孩子中定义。
使用export
...
$ export VAR1="Hello, World!"
$ echo "${VAR1}"
Hello, World!
$ bash
$ echo "${VAR1}"
Hello, World!
$
...导致在孩子中定义VAR1
。