我正在尝试使用 Node 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();
当我收到使用 Node stats.js 运行此命令时,这是我的文件名,我从终端上的 df -h 命令中退出。我想解析此信息并仅获取/dev/disk/1 的信息: [ Node 统计.js][1]
[1]: /image/2vzb1.png但我不知道如何。帮助 ?
最佳答案
好吧,你做的一切都是正确的。回调函数在 child 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();
关于javascript - 如何通过命令解析以在 Node JS 中接收带有子进程的特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45087968/