我如何模仿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;
答案 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;