我正在尝试制作一个 Node.js 脚本来分析磁盘使用情况。为此,我全力以赴du
,但我无法弄清楚如何逐行读取子进程的输出。这是我到目前为止所尝试的:
var spawn = require("child_process").spawn,
rl = require('readline'),
du = spawn('du', ['/home']);
linereader = rl.createInterface(du.stdout, du.stdin);
// Read line by line.
//du.stdout.on('data', function (data) {
linereader.on('line', function (data) {
console.log(data);
});
du.stdout.on('data'
只是读取数据块,虽然readline
应该按行拆分其输入,但它没有,相反,我得到了完全相同的数据(du.stdout 返回一个缓冲区,但调用.toString()
它会得到与我得到的相同的数据linereader
)。