linux中的局部变量

linux中的局部变量,linux,subshell,Linux,Subshell,当我们导出在当前shell中声明的局部变量时,它是否会传递给将来的子shell、进程、子进程或将来的子进程? 有人告诉我,它将传递给未来的子炮弹。正确吗?试试看 $ export foo=bar $ bash $ echo $foo bar $ bash $ echo $foo bar $ exit $ exit $ tl;医生:是的。试试看 $ export foo=bar $ bash $ echo $foo bar $ bash $ echo $foo bar $ exit $ exit

当我们导出在当前shell中声明的局部变量时,它是否会传递给将来的子shell、进程、子进程或将来的子进程? 有人告诉我,它将传递给未来的子炮弹。正确吗?

试试看

$ export foo=bar
$ bash
$ echo $foo
bar
$ bash
$ echo $foo
bar
$ exit
$ exit
$
tl;医生:是的。

试试看

$ 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

使用
导出时

$ export VAR1="Hello, World!"
$ echo "${VAR1}"
Hello, World!
$ bash
$ echo "${VAR1}"
Hello, World!
$ 

。。。导致在孩子中定义
VAR1

这个简单的测试将自己回答您:

$ 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 VAR1="Hello, World!"
$ echo "${VAR1}"
Hello, World!
$ bash
$ echo "${VAR1}"
Hello, World!
$ 

。。。导致在子进程中定义
VAR1

因此可以将VAR1传递到子进程?它会传递到子环境,是的。但它不会传递到子进程,对吗?当导出后调用
bash
时,它是父shell的子进程。所以VAR1可以传递到child?它被传递到子环境,是的。但是它不会传递到子进程,对吗?当导出后调用
bash
时,它是父shell的子进程。