节点生成命令

时间:2018-04-17 14:46:24

标签: node.js bash docker jenkins spawn

帮我推断bash变量值!

我一直在谷歌搜索一些解决方案,到目前为止还没有找到我要做的事情的例子。

我有一个Jenkins工作正在运行包含节点运行时的docker镜像。在创建docker镜像期间,提供了一些env变种(使用export),我想通过生成child_process并使用bash来提取变量指向的文字值来捕获它。

例如,const child = child_process.spawn('echo', ['$var']);

我已经尝试过我可以想到的引用和转义的每个变体,我不确定如何从该命令引用bash变量,从节点脚本生成的子进程内部调用。

如果有任何不清楚的地方,请告诉我。我有一个首选的终端解决方案,但它现在被阻止所以我试图在我们等待其他解决方案可用时继续这样做。

更新CLARITY - env变量存储在bash中。您通常可以使用echo $var来访问它。我在运行节点脚本的bash shell中,我想通过生成子进程来推断要在节点脚本中使用的值。

2 个答案:

答案 0 :(得分:1)

在节点中,您可以访问全局process对象上的环境变量:

process.env.MY_ENV_VAR

在你的情况下:

const child = child_process.spawn('echo', [process.env.var]);

答案 1 :(得分:1)

使用printenv代替echo

我遇到了与您相同的问题,此处接受的答案无济于事。不确定为什么接受。

尝试使用printenv而不是echo来显示ENV值,如下所示:

const child = child_process.spawn( 'printenv', [ 'var' ] );