如何在node.js中导出env变量

时间:2014-10-20 11:04:15

标签: javascript node.js bash environment-variables

我非常喜欢我的node.js,我想使用它是我的bash启动脚本~/.bashrc,但我不知道如何导出变量。

目前我必须使用这种方法:

export PS1=`node ~/PS1.js`
export PS2=`node ~/PS2.js`
export PATH=`node ~/PATH.js`

而我希望.bashrc看起来有

#!/usr/local/bin/node
//do something, define functions
export_var('PS1', PS1())
export_var('PS2', PS2())
export_var('PATH', generatePATH())

process.env.PATH = something export ,仅为当前正在执行的进程设置,即节点本身。

2 个答案:

答案 0 :(得分:3)

Node.js将在一个单独的进程中运行,该进程获取环境的副本。您无法更改父进程的环境(执行.bashrc的环境)。

但是以下问题可以为您解答: Can a shell script set environment variables of the calling shell?

您可以在node.js中编写新的脚本文件,并通过source进行调用。

答案 1 :(得分:0)

一种可能的方法是使用JS打印输出语句,然后在shell中使用eval在当前shell中对其进行评估。

例如test.js

#!/usr/bin/env node
console.log('export A=40; export B=10');

在外壳中:

eval `./test.js`
echo $A