一个node同步执行可执行文件并返回输出到字符串的模块
发布于 11 年前 作者 XadillaX 6386 次浏览 最后一次编辑是 8 年前

模块叫 sync-runner。<del>今天刚写的,要睡了也懒得换系统再写个,所以暂时只支持windows,不过其它系统也是要写的。</del>

大致就是可以这样:

var run = require("sync-runner");
var result = run("ping 127.0.0.1", 1000);
console.log(result);

不推荐将这个模块用于服务器,可以用于本地的 REPL 程序以及 native appnode-webkit 等。

比如要通过node来调用gcc编译器啊,然后再比如获取系统gcc版本啊,就可以用它方便地使用了:

var result = run("gcc --version");

安装很简单:

$ npm install sync-runner

github的repo在https://github.com/XadillaX/syncRunner

欢迎大家fork或者干嘛干嘛,也欢迎大家提交别的系统的同步函数-。 - 在我还没写之前。

或者找找bug什么的,谢谢啦 0. 0


新版本 0.0.5 已经支持 linuxmac 了。

但是求高手来排查一下,mac 下没问题,linux 如果超时执行了,貌似掐掉子进程之后还是会出现僵尸——请看 test/index 第一个样例 ping

7 回复

哈哈,yield run

还是得考虑下用0.10的stable的人比如说我是吧-。 -

0.11目前还是unstable版本,虽然可以自己编译,但是用unstable总觉得怪怪的,强迫症使然。

-。 - 求实现linux版本,对于linux用C++实现这些操作还真不会,琢磨了一个下午的fork啊execlp之类的还是没搞出来。

@alsotang 貌似这个的话也只是同步执行,执行完毕就啪啦啪啦了。

我这个是直接执行完毕到字符串里面的 -。 -

虽然在执行的命令里面加入 > 来重定向也可以。

这个的话得在命令里面加入 > 重定向才能从文本文件里面读取输出吧。

我这个是直接运行好之后结果已经在返回的字符串了。

举个简单的例子,我想获得系统 GCC 的版本,那我直接就可以

var version = runner.run("gcc --version");
回到顶部