如何将节点 CLI 程序的输出通过管道传输到 shell?

How to pipe output of a node CLI program to shell?

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

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

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

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

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

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

谢谢

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

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

这取决于 shell 来处理流重定向,而不是您的应用程序。