Bash似乎可以区分已导出和未导出的变量。
例:
$ FOO=BAR
$ env | grep FOO
$ set | grep FOO
FOO=BAR
set
看到变量,但env
看不到。
$ export BAR=FOO
$ env | grep FOO
BAR=FOO
$ set | grep FOO
BAR=FOO
FOO=BAR
set
查看两个变量,但env
仅查看导出的变量。
我知道那set
是内置的bash,env
不是。
导出的变量与未导出的变量之间有什么区别?
17
术语注释:“环境变量”始终被导出。非导出变量是“外壳变量”(或“参数”)。
—
吉尔斯(Gillles)“所以-别再作恶了”