【问题标题】:How to pipe output of a node CLI program to shell?如何将节点 CLI 程序的输出通过管道传输到 shell?
【发布时间】:2015-08-19 13:27:27
【问题描述】:

我基本上想做这样的事情:

$ my-node-cli <some-param> | less

请注意,less 只是一个示例。我需要它与任何其他 *nix 命令一起使用。

有关用例的更多信息:
我编写了一个节点 CLI 包,用于搜索一些在线资源并将结果输出到 shell。由于结果集可能很大,客户想要对其进行额外的操作,例如grepheadtailtee,...任何事情。

我进行了广泛搜索,但我只找到了将 输入到 节点程序的方法,而不是 输出 的方法。我目前的想法是在调用我的程序时捕获管道的右侧,然后,在我获得结果后,使用child_process.exec 执行与管道连接的结果(以及我被调用时记得的那部分)。不确定这是否可行?

请注意,每次调用我的程序都是一个新进程,即程序没有自己的提示符。

谢谢

【问题讨论】:

  • 什么意思,它“将结果输出到shell”?你的意思是它只是写信给stdout?那为什么管道不工作呢?

标签: node.js node.js-stream


【解决方案1】:

您需要做的就是在您的应用程序中从 STDOUT 输出。如果通过管道将其发送到下一个程序。

您可以使用普通的旧 console.log()process.stdout stream

由 shell 来处理流重定向,而不是你的应用程序。

【讨论】:

  • 对,我太傻了,这就是为什么网络上没有资源,它是如此简单。谢谢大家,我有一个错误让我相信管道是导致它的原因,而它是我自己的代码中的东西。
猜你喜欢
  • 2015-10-05
  • 2017-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多