2015-06-04 70 views
2

我基本上想要做這樣的事情:如何將節點CLI程序的輸出管道輸出到shell?

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

注意less只是一個例子。我需要它與任何其他* nix命令一起工作。

關於用例的更多信息:
我編寫了一個節點CLI包,用於搜索某些在線資源並將結果輸出到shell。由於結果集可以是巨大的,客戶想要做就可以了額外的操作,e.g grepheadtailtee ......什麼真正的。

我搜索無遠弗屆,我只設法找到辦法管節點程序,而不是。我當前的想法是在調用程序時捕獲管道的右側,然後在獲得結果後,使用child_process.exec執行與管道連接的結果(以及我在調用時記住的那部分)。不知道這是否可以工作?

注意,每個我的程序調用時都會是一個新的進程,即程序沒有它自己的提示。

謝謝

+2

你是什麼意思,它「輸出結果到shell *」?你的意思是簡單寫入'stdout'?那爲什麼這根管子不工作? – Bergi

回答

2

所有你需要做的是在你的應用程序中從STDOUT輸出。如果通過管道連接,它將被髮送到下一個程序。

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

這是由shell來處理流重定向,而不是你的應用程序。

+0

沒錯,那對我來說很愚蠢,這就是爲什麼網上沒有資源,這很直接。感謝球員們,我有一個錯誤讓我相信管道是什麼造成的,什麼時候是我自己代碼中的東西。 –