2017-07-13 5 views
0

ノードjsの子プロセスを使用してVMのディスク領域を取得しようとしています。これは私のコードです:ノードJS内の子プロセスで特定の行を受け取るコマンドを解析するには

const { exec } = require('child_process'); 


function diskSpace(err, result) { 
    exec('df -h',(error, stdout, stderr) => { 
    if (error) { 
     console.error(`exec error: ${error}`); 
     return; 
    } 
    console.log(`stdout: ${stdout}`); 
    console.log(`stderr: ${stderr}`); 
})}; 

diskSpace(); 

私は私の端末でdf -hコマンドのうちを取得し、私のファイルの名前であるノードstats.jsを使用して、これを実行して受信したとき。この情報を解析し、/ dev/disk/1の情報のみを取得したいと思います。 [node stats.js] [1]

[1]:https://i.stack.imgur.com/2vzb1.png助けて ?

答えて

0

さて、あなたはそれをすべて正しくしています。コールバック関数は子のprocess termination上で実行されるので、stdoutは実際には文字列です。

const { exec } = require('child_process'); 
function diskSpace(err, result) { 
    exec('df -h',(error, stdout, stderr) => { 
    if (error) { 
     console.error(`exec error: ${error}`); 
     return; 
    } 
    console.log(`stdout: ${stdout}`); 
    console.log(`stderr: ${stderr}`); 
    console.log('>>', /(\/dev\/disk1.*)\/\n/.exec(stdout)[1]); 
})}; 

diskSpace(); 
関連する問題