nodejs如何获取命令行输出的信息?

执行一段黑盒脚本,命令行输出了一些信息,请问如何使用node.js获取这些输出到命令行的信息呢?

阅读 4.1k
3 个回答

可以使用内置库 child_process 执行命令,回调函数中的 stdoutstderr 即为控制台输出的信息。


const { exec } = require('node:child_process');
exec('node blackbox.js', (error, stdout, stderr) => {
  if (error) {
    console.error(`exec error: ${error}`);
    return;
  }
  console.log(`stdout: ${stdout}`);
  console.error(`stderr: ${stderr}`);
});

有其他方案,并且可以让您写脚本更方便
zx https://www.npmjs.com/package/zx是由google开源的一个工具库,方便前端开发人员写脚本不需要非常深入的学shell
使用它可以将命令行输出的信息获取到,我曾使用它写过一个小脚本并写了一篇文章https://juejin.cn/post/707297...

image.png
上图中,圈起来的地方就能获取到信息

可以考虑下重写console.log方法,在自定义方法中将信息保存成你需要的数据格式

infoList = []
console.log_ = console.log
console.log = function(message){
    infoList.push(message)
    console.log_(message)
}

不知道这样能不能行

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏