我试图找到一些好的库来使用nodejs执行shell脚本命令(例如:rm,cp,mkdir等等)。最近没有关于可能包装的明确文章。我读了很多关于exec-sync的内容。但有人说它已被弃用。真的,我迷路了,找不到任何东西。我尝试安装exec-sync,但收到了以下错误:
npm ERR! ffi@1.2.5 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the ffi@1.2.5 install script 'node-gyp rebuild'.
你有什么建议吗?
答案 0 :(得分:2)
您可以简单地使用节点Child Process核心模块,或者至少使用它来构建您自己的模块。
child_process模块提供了以与popen(3)类似但不相同的方式生成子进程的能力。此功能主要由child_process.spawn()函数提供:
特别是exec()
方法。
<强> child_process.exec()强>
生成一个shell并在该shell中运行命令,完成后将stdout和stderr传递给回调函数。
这里是文档中的示例。
生成shell然后在该shell中执行命令,缓冲任何生成的输出。
const exec = require('child_process').exec;
exec('cat *.js bad_file | wc -l', (error, stdout, stderr) => {
if (error) {
console.error(`exec error: ${error}`);
return;
}
console.log(`stdout: ${stdout}`);
console.log(`stderr: ${stderr}`);
});