将spawnSync的stdout发送到另一个spawnSync stdin

时间:2017-09-08 03:21:19

标签: node.js stdio

我如何模仿linux的| (pipe)在node.js应用程序中将命令的stdout传递给下一个命令的stdin。这两个命令都是使用spawnSync生成的。

这个(伪代码)在命令行中按预期工作:

$ command1 -arg1 file | command2 arg2
> someoutput

但这不是:

const spawnSync = require('child_process').spawnSync;

const c1Spawn = spawnSync('command1', ['arg1', 'file']);
const c2Spawn = spawnSync('command2', ['arg2'], { input: c1Spawn.output });

const someoutput = c2Spawn.output;

1 个答案:

答案 0 :(得分:0)

我相信我找到了答案,使用input: c1Spawn.stdout代替输出作为第二个命令的输入。

const spawnSync = require('child_process').spawnSync;

const c1Spawn = spawnSync('command1', ['arg1', 'file']);
const c2Spawn = spawnSync('command2', ['arg2'], { input: c1Spawn.stdout });

const someoutput = c2Spawn.output;