可以看到终端输出,但不能使用Shell重定向器将其保存到文件中

时间:2018-09-24 15:36:47

标签: node.js macos homebrew stdout child-process

The content is on stdout

我正在尝试使用Nodejs获得此软件包的结果。我一直在尝试使用spawn,exec并记录child_process对象来对其进行调试,但是即使stderr数据正常,也无法看到stdout上的值。

当我直接输出终端时,我可以记录stderr,但是如果我将stdout记录到文件中,则stdout只是空的,但是它确实显示在终端中。

然后我尝试仅使用工具来检查结果,然后认为这是工具问题,而不是Nodejs代码。

编辑:以文本形式添加终端内容

Macbooks-MacBook-Pro:query macos$ lola --formula="EF DEADLOCK" input.lola --quiet --json
{"analysis": {"formula": {"parsed": "EF (DEADLOCK)", "parsed_size": 13, "type": "deadlock"}, "result": true, "stats": {"edges": 3, "states": 4}}, "call": {"architecture": 64, "assertions": false, "build_system": "x86_64-apple-darwin17.7.0", "error": null, "hostname": "Macbooks-MacBook-Pro.local", "optimizations": true, "package_version": "2.0", "parameters": ["--formula=EF DEADLOCK", "input.lola", "--quiet", "--json"], "signal": null, "svn_version": "Unversioned directory"}, "files": {"net": {"filename": "input.lola"}}, "limits": {"markings": null, "time": null}, "net": {"conflict_sets": 6, "filename": "input.lola", "places": 8, "places_significant": 6, "transitions": 7}, "store": {"bucketing": 16, "encoder": "bit-perfect", "threads": 1, "type": "prefix"}}
Macbooks-MacBook-Pro:query macos$ lola --formula="EF DEADLOCK" input.lola --quiet --json 2> aaa.txt
{"analysis": {"formula": {"parsed": "EF (DEADLOCK)", "parsed_size": 13, "type": "deadlock"}, "result": true, "stats": {"edges": 3, "states": 4}}, "call": {"architecture": 64, "assertions": false, "build_system": "x86_64-apple-darwin17.7.0", "error": null, "hostname": "Macbooks-MacBook-Pro.local", "optimizations": true, "package_version": "2.0", "parameters": ["--formula=EF DEADLOCK", "input.lola", "--quiet", "--json"], "signal": null, "svn_version": "Unversioned directory"}, "files": {"net": {"filename": "input.lola"}}, "limits": {"markings": null, "time": null}, "net": {"conflict_sets": 6, "filename": "input.lola", "places": 8, "places_significant": 6, "transitions": 7}, "store": {"bucketing": 16, "encoder": "bit-perfect", "threads": 1, "type": "prefix"}}
Macbooks-MacBook-Pro:query macos$

1 个答案:

答案 0 :(得分:0)

在我看来,这个问题与nodejs无关。我在此Lola工具上进行了快速搜索,看起来它可能具有一些自定义的stdout / stderr,因此从终端定期使用时,与为stdout和stderr指定重定向时,它的行为可能有所不同。 / p>

一个可能的解决方案是使用--json选项并指定一个临时文件名,然后让您的nodejs代码从创建的临时文件中读取结果。 (如果您无法确定stdout / stderr问题。)