这是问题How to intercept and save to a variable the output streaming of a command in node.js?
的后续内容我意识到我还需要将流发送到stdout,因为我正在调用的脚本(不是本示例中的ls
)正在向屏幕发送更新(使用\ r覆盖该脚本)行)
所以我需要在终端中显示流,同时将其保存在变量中以进行后处理
这是将流正确发送到终端的代码示例:
const cp = require('child_process');
const result = cp.spawnSync(
'ls',
['-l', '/usr'],
{ stdio: [process.stdin, process.stdout, process.stdout] }
);
这是将流保存到变量的示例:
const cp = require('child_process');
const result = cp.spawnSync(
'ls',
['-l', '/usr']
);
savedStream = result.stdout.toString();
我想将两者结合在一起