一个node同步执行可执行文件并返回输出到字符串的模块
发布于 11 年前 作者 XadillaX 6804 次预览 最后一次回复是 11 年前 来自
模块叫 sync-runner。<del>今天刚写的,要睡了也懒得换系统再写个,所以暂时只支持windows,不过其它系统也是要写的。</del>
大致就是可以这样:
var run = require("sync-runner");
var result = run("ping 127.0.0.1", 1000);
console.log(result);
不推荐将这个模块用于服务器,可以用于本地的 REPL 程序以及 native app 如 node-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 已经支持 linux 和 mac 了。
但是求高手来排查一下,mac 下没问题,linux 如果超时执行了,貌似掐掉子进程之后还是会出现僵尸——请看 test/index 第一个样例 ping。
7 回复
Node.js 0.12 将会支持
child_process.execSync()http://strongloop.com/strongblog/whats-new-in-node-js-v0-12-execsync-a-synchronous-api-for-child-processes/+1
哈哈,yield run
还是得考虑下用0.10的stable的人比如说我是吧-。 -
0.11目前还是unstable版本,虽然可以自己编译,但是用unstable总觉得怪怪的,强迫症使然。
-。 - 求实现linux版本,对于linux用C++实现这些操作还真不会,琢磨了一个下午的fork啊execlp之类的还是没搞出来。
@alsotang 貌似这个的话也只是同步执行,执行完毕就啪啦啪啦了。
我这个是直接执行完毕到字符串里面的 -。 -
虽然在执行的命令里面加入
>来重定向也可以。这个的话得在命令里面加入
>重定向才能从文本文件里面读取输出吧。我这个是直接运行好之后结果已经在返回的字符串了。
举个简单的例子,我想获得系统
GCC的版本,那我直接就可以