【发布时间】:2017-09-27 20:08:17
【问题描述】:
当我运行下面的代码时,控制台的输出与我看到的是否直接通过终端运行此命令不同。知道为什么吗?除了stdout.on('data'),还有其他功能可以输出更多信息吗?
具体来说,当我通过终端运行它时,我会看到一个进度条,指示命令完成的百分比。当我通过节点运行它时,它会吐出一些早期的类似信息,然后停止一段时间,直到命令完成。
var sh = spawn('sh', ['app/scripts/scriptA.sh', path]);
sh.stdout.on('data', function (data) {
console.log(data.toString());
});
【问题讨论】:
-
stderr流是否有可能受到流量控制而导致阻塞?也许也添加一个sh.stderr.on('data', ...)处理程序。 -
另外,以你的方式运行它和在命令行上运行它的主要区别在于,当你运行命令行时,你是在一个 shell 中运行,但是当你以你的方式运行它时,你不是。这可能会导致一些不同的行为。如果你愿意,你可以告诉 spawn 在 shell 中运行它。
-
你弄清楚为什么输出不同了吗?
标签: javascript node.js stdout child-process