Bash 似乎区分已导出的变量和未导出的变量。
例子:
$ FOO=BAR
$ env | grep FOO
$ set | grep FOO
FOO=BAR
Run Code Online (Sandbox Code Playgroud)
set
看到变量但env
没有。
$ export BAR=FOO
$ env | grep FOO
BAR=FOO
$ set | grep FOO
BAR=FOO
FOO=BAR
Run Code Online (Sandbox Code Playgroud)
set
看到两个变量,但env
只看到导出的变量。
我知道这set
是一个内置的 bash 而env
不是。
导出的变量和不导出的变量之间有什么区别?
我知道这VARIABLE=value
会创建一个环境变量,并export VARIABLE=value
使其可用于当前 shell 创建的进程。env
显示当前的环境变量,但它们住在哪里?什么包含环境变量(或environment,就此而言)?