javascript - 如何通过命令解析以在 Node JS 中接收带有子进程的特定行

标签 javascript node.js linux terminal

我正在尝试使用 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/

相关文章:

javascript - 网站作为社交网络上的链接的漂亮外观

node.js - 名称类型为 mongoose 的字段

linux - 如何为电话号码组合更新我的 Asterisk 拨号计划?

javascript - 模糊后 knockout 更新计算值

javascript - 如何在谷歌函数中绘制圆形或矩形等图形对象?

node.js - Azure 函数压缩 POST 正文

linux - RT Linux 内核是整体内核还是微内核(如 QNX)?

linux - if 条件出错

javascript - 将逻辑放入 javascript 与主框架的一般准则

node.js - 套接字.io : best way to find all sockets of a single user