我基本上想做这样的事情:
$ my-node-cli <some-param> | less
请注意less
这只是一个例子。我需要它与任何其他 *nix 命令一起使用。
有关用例的更多信息:
我编写了一个 Node CLI 包,用于搜索一些在线资源并将结果输出到 shell。由于结果集可能很大,客户端希望对其进行额外的操作,例如 grep
, head
, tail
, tee
,...真的什么都可以。
我进行了广泛的搜索,但我只找到了通过管道进入 Node 程序的方法,而不是从中导出。我当前的想法是在调用我的程序时捕获管道的右侧,然后在获得结果后,使用 child_process.exec
执行与管道(以及我被调用时我记得的那部分)连接的结果。 。不确定这是否可行?
请注意,每次调用我的程序时,它都是一个新进程,即该程序没有自己的提示符。
谢谢
最佳答案
您所需要做的就是从应用程序中的 STDOUT 输出。如果通过管道传送到下一个程序,这将被发送到下一个程序。
您可以使用普通的旧console.log()
或process.stdout
stream .
由 shell 来处理流重定向,而不是您的应用程序。
关于node.js - 如何将 Node CLI 程序的输出通过管道传输到 shell?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30652243/