问题描述
我以前曾经用shelljs调用过这样的命令:
require('shelljs/global');
let res = exec('echo hello').stdout
但是我想在不依赖shelljs的情况下在节点中实现这一点。 问题是我发现了node的示例,但是我遇到了很多麻烦。 感谢您的帮助
解决方法
最简单的答案是使用synchronous的exec版本。该命令不会在命令运行时显示stdout,结果将不会具有shelljs提供的出色属性,仅包含stdout
数据
const { execSync } = require('child_process')
const exec = (cmd) => execSync(cmd).toString()
const res = exec('echo "hello there"')
完整的shelljs实现在exec.js中,该脚本通过exec-child.js
脚本运行命令以启用实时输出+捕获到同步exec的变量。这取决于您需要的解决方案的复杂程度。