首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >node.js同步执行系统命令

node.js同步执行系统命令
EN

Stack Overflow用户
提问于 2010-12-15 03:59:43
回答 13查看 171.3K关注 0票数 198

我需要在node.js中使用函数

代码语言:javascript
复制
result = execSync('node -v');

这将同步,并执行给定的命令行,并返回该命令文本所包含的所有标准输出。

ps。同步错误。我知道呀。仅供个人使用。

更新

现在我们有了mgutz的解决方案,它给了我们退出代码,而不是stdout!还在等待一个更准确的答案。

更新

mgutz更新了他的答案,解决方案在这里:)

此外,正如dgo.a提到的,还有独立的模块exec-sync

更新2014-07-30

ShellJS库已到达。考虑到这是目前最好的选择。

更新2015-02-10

终于来了! NodeJS 0.12本机支持execSync

请参阅官方docs

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2015-02-08 22:13:34

Node.js (从0.12版开始--暂时)支持execSync

代码语言:javascript
复制
child_process.execSync(command[, options])

您现在可以直接执行此操作:

代码语言:javascript
复制
const execSync = require('child_process').execSync;
code = execSync('node -v');

它会做你所期望的事情。(默认情况下,通过管道将i/o结果传送到父进程)。请注意,您现在也可以使用spawnSync

票数 201
EN

Stack Overflow用户

发布于 2011-06-09 13:23:02

请参见execSync库。

使用node-ffi很容易做到这一点。我不建议用于服务器进程,但对于一般的开发实用程序,它可以完成任务。安装库。

代码语言:javascript
复制
npm install node-ffi

示例脚本:

代码语言:javascript
复制
var FFI = require("node-ffi");
var libc = new FFI.Library(null, {
  "system": ["int32", ["string"]]
});

var run = libc.system;
run("echo $USER");

编辑2012年6月:如何获取STDOUT

代码语言:javascript
复制
var lib = ffi.Library(null, {
    // FILE* popen(char* cmd, char* mode);
    popen: ['pointer', ['string', 'string']],

    // void pclose(FILE* fp);
    pclose: ['void', [ 'pointer']],

    // char* fgets(char* buff, int buff, in)
    fgets: ['string', ['string', 'int','pointer']]
});

function execSync(cmd) {
  var
    buffer = new Buffer(1024),
    result = "",
    fp = lib.popen(cmd, 'r');

  if (!fp) throw new Error('execSync error: '+cmd);

  while(lib.fgets(buffer, 1024, fp)) {
    result += buffer.readCString();
  };
  lib.pclose(fp);

  return result;
}

console.log(execSync('echo $HOME'));
票数 55
EN

Stack Overflow用户

发布于 2014-07-29 20:58:04

使用ShellJS模块。

不提供回调的exec函数。

示例:

代码语言:javascript
复制
var version = exec('node -v').output;
票数 32
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4443597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档