Node.js - 执行系统命令或外部命令

3

我有一个关于Node.js的问题。在Python中,如果我想执行外部命令,我会像这样做:

import subprocess
subprocess.call("bower init", shell=True)

我阅读了 Node.js 中的 child_process.execspawn,但是我做不到我想要的。那么我想要什么呢?
我想要执行一个外部命令(比如 bower init),并且实时查看它的输出,并与 bower 本身进行交互。我唯一能做的就是接收最终的输出,但这不能让我与程序交互。
问候。
编辑:我看到 this 这个问题,但那个答案在这里不起作用。我想在外部程序需要输入时发送输入。

可能是如何在node.js内运行交互式shell命令?的重复问题。 - Scimonster
那个答案展示了如何读取数据和发送数据。不清楚你的编辑请求中有什么问题没有被涵盖到。你可以监听进程发送的数据,并使用.write方法向进程发送数据。 - loganfsmyth
我要再试一次。看起来很简单,但是... - Henrique Dias
如果你真的需要一个shell,那么可以看看pty.js。否则,child_process.spawn()应该就足够了。 - hexacyanide
1个回答

3
这个怎么样?
var childProcess = require('child_process');

var child = childProcess.spawn('bower', ['init'], {
  env: process.env,
  stdio: 'inherit'
});

child.on('close', function(code) {
  process.exit(code);
});

对我来说似乎起作用了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接