如何将节点CLI程序的输出传递给shell?

时间:2015-06-04 19:15:31

标签: node.js node.js-stream

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

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

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

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

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

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

由于

1 个答案:

答案 0 :(得分:2)

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

您可以使用普通的console.log()this

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