将subprocess的输出保存在NodeJS的父进程的variables中

我想在NodeJS中启动一个subprocess并将其输出保存到一个variables中。 以下代码将其提供给stdout:

require("child_process").execSync("echo Hello World", {"stdio": "inherit"}); 

我有一个类似于这个代码的东西:

 var test; require("child_process").execSync("echo Hello World", {"stdio": "test"}); console.log(test); 

test的价值应该是Hello World

哪个不行,因为"test"不是有效的stdio值。

也许这是可能的使用环境variables,但是我没有find如何修改它们在subprocess中的结果仍然是可见的父。

execSync是一个函数,它返回你传入的命令的stdout,所以你可以用下面的代码把它的输出保存到一个variables中:

 var child_process = require("child_process"); var test = child_process.execSync("echo Hello World"); console.log(test); // => "Hello World" 

请注意,如果进程的退出代码不为零,则会引发错误。 另外,请注意,您可能需要使用test.toString()因为child_process.execSync可以返回一个Buffer

Interesting Posts