鉴于下面的函数c(),我希望现在继承标准输出。
下面的代码应可以直接调用。
请注意,我希望异步执行 execSync ,而不是 exec 。
但是,我还希望能够读取通过管道传输到控制台的数据。
但是在将其传递给父进程(终端窗口)之前,我无法先包装管道数据并自己对其进行处理。
我试图创建一个 WriteStream ,希望我能够提供一个功能,在该功能中可以对数据进行分析,然后将其通过管道传递给父流程,但这证明很困难。
function c(command, options) {
options || (options = {}); var mo = options.mo || (options.mo = {});
mo.stdin || (mo.stdin = process.stdin )
mo.stdout || (mo.stdout = process.stdout)
mo.stderr || (mo.stderr = process.stderr)
options.stdio || (options.stdio = [mo.stdin, mo.stdout, mo.stderr]);
var child_process = require('child_process');
try {
var out = child_process.execSync(command, options);
console.log(111, out); // Always null
}
catch(e) {
console.log(222, 'Error occured: ', e);
}
}
var command_1 = 'mvn clean install -DskipTests';
var command_2 = 'mvn --version';
var command_3 = 'passwd';
c(command_3, {
mo : {
// stdout : require('fs').createWriteStream("abcdef")
}
});