为什么Node不读取当前shell的env var?

时间:2017-06-07 08:24:48

标签: node.js shell environment-variables

如下所示,我设置了一个环境变量FOO,但是当我在下一行执行console.log时,它会undefined。如果我将它设置在我执行console.log的同一行,它就会出现。为什么这样的行为呢?

$ FOO="123"
$ echo $FOO
123
$ node -e "console.log(process.env.FOO)"
undefined
$ FOO="123" node -e "console.log(process.env.FOO)"
123

节点版本:6.6.0

1 个答案:

答案 0 :(得分:5)

如果要为当前终端会话设置环境变量,则需要使用EXPORT

因此,此代码将起作用

export FOO=123
node -e "console.log(process.env.FOO)"
123

EXPORT使子进程可以看到赋值。查看此thread了解详情