使用nodejs执行shell脚本命令

时间:2016-09-06 08:49:08

标签: javascript node.js shell exec rm

我试图找到一些好的库来使用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'.

你有什么建议吗?

1 个答案:

答案 0 :(得分:2)

您可以简单地使用节点Child Process核心模块,或者至少使用它来构建您自己的模块。

  

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}`);
});