【发布时间】:2014-06-24 08:49:42
【问题描述】:
如何运行命令行并尽快获取输出以在某处显示它们。
例如,如果在 linux 系统上运行 ping 命令,它将永远不会停止,现在是否可以在命令仍在处理时获得响应?
或者让我们使用apt-get install 命令,如果我想在运行时显示安装进度怎么办?
其实我是用这个函数来执行命令行并获取输出,但是这个函数在命令行结束之前不会返回,所以如果我运行一个 ping 命令它永远不会返回!
var sys = require('sys'),
exec = require('child_process').exec;
function getOutput(command,callback){
exec(
command,
(
function(){
return function(err,data,stderr){
callback(data);
}
}
)(callback)
);
}
【问题讨论】:
-
尝试使用 spawn 代替 exec,然后你可以点击流并监听数据和结束事件。
-
谢谢你的回答,我对node不是很熟悉,刚开始接触它,所以一个小代码示例,会很有帮助的
标签: linux node.js asynchronous command-line output