// test.js
if (process.argv.indexOf('child') >= 0) {
console.log('child columns:', process.stdout.columns)
}
else {
console.log('parent columns:', process.stdout.columns)
pipedExec('node', ['test.js', 'child'], function(outdata) {
console.log(' '+outdata.join('\n '))
})
}
function pipedExec (cmd, arg, callback) {
var
pipe = '',
spawn = require('child_process').spawn,
x = spawn(cmd, arg)
function d(outdata) { pipe += outdata.toString() }
x.stdout.on('data', d)
x.stderr.on('data', d)
x.on('close', function() { callback(pipe.split('\n')) })
return x
}
这是输出:
$ node test.js
parent columns: 104
child columns: undefined
如何使此代码按预期工作,即让孩子从process.stdout.columns
获取正确的值?我可以继承句柄,但是管道不起作用。或者我可以通过程序args或通过文件(我现在这样做)传递列计数器,但我想简单地设置管道的列宽,如果可能的话。