将 spawnSync 的标准输出发送到另一个 spawnSync 标准输入

Send the stdout of spawnSync to another spawnSync stdin

如何模拟 linux 的 | (管道)在 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;

我相信我通过使用 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;