linux 中的局部变量
local variables in linux
当我们导出在当前 shell 中声明的局部变量时,它会传递给未来的子 shell 进程、子进程或未来的子进程吗?
有人告诉我它会传递给未来的 sub shells。正确吗?
试试看?
$ export foo=bar
$ bash
$ echo $foo
bar
$ bash
$ echo $foo
bar
$ exit
$ exit
$
tl;博士:是的。
这个简单的测试会自动回答你:
$ 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
未在 child.
中定义
同时 export
...
$ export VAR1="Hello, World!"
$ echo "${VAR1}"
Hello, World!
$ bash
$ echo "${VAR1}"
Hello, World!
$
... 导致 VAR1
在 child.
中被定义
当我们导出在当前 shell 中声明的局部变量时,它会传递给未来的子 shell 进程、子进程或未来的子进程吗? 有人告诉我它会传递给未来的 sub shells。正确吗?
试试看?
$ export foo=bar
$ bash
$ echo $foo
bar
$ bash
$ echo $foo
bar
$ exit
$ exit
$
tl;博士:是的。
这个简单的测试会自动回答你:
$ 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
未在 child.
同时 export
...
$ export VAR1="Hello, World!"
$ echo "${VAR1}"
Hello, World!
$ bash
$ echo "${VAR1}"
Hello, World!
$
... 导致 VAR1
在 child.