将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
。