我想在 NodeJS 中启动一个子进程并将其输出保存到一个变量中。以下代码将其提供给标准输出:
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 值。
也许使用环境变量是可能的,但是我没有找到如何在子进程中修改它们,并且结果仍然对父进程可见。
execSync https://nodejs.org/api/child_process.html#child_process_child_process_execsync_command_options是一个函数returns您传入的命令的标准输出,因此您可以使用以下代码将其输出存储到变量中:
var child_process = require("child_process");
var test = child_process.execSync("echo Hello World");
console.log(test);
// => "Hello World"
请注意,如果进程的退出代码非零,这将引发错误。另请注意,您可能需要使用test.toString()
as child_process.execSync
可以返回一个Buffer
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)