Shell
有沒有像貓一樣有歷史的東西?
這是關於一個迭代工作的程序 - 從標準輸入獲取輸入並將結果傳遞給標準輸出。有一組需要傳遞給該程序的已知文本,我已將它們放入文件中
begin.txt
。所以我可以設置一個管道cat begin.txt - | myprogram
問題稍後出現 - 如果我想發送我已經輸入的內容(稍作修改),箭頭不起作用,因為沒有歷史記錄
cat
- 因此,我正在尋找可以保留每行歷史記錄的東西。
最初我嘗試過
vim
,:.! myprogram
但是在執行條目(傳遞的文本)myprogram
之後退出,然後它的狀態失去了。我需要一種方法來保持程序工作,直到傳遞我的文本/命令。
- 是否有可能以
vim
這種連續方式在管道中充當過濾器的方式執行?
使用
rlwrap
. 該rlwrap
實用程序包裝了您使用它的任何實用程序,以便它獲取 ReadLine 歷史記錄(以及一些 ReadLine 編輯功能,例如您在bash
提示符下習慣的功能)。它將歷史記錄儲存在下的文件中$RLWRAP_HOME
(或者$HOME
如果未設置該變數)。有了
rlwrap
,你就可以做到rlwrap cat begin.txt - | myprogram
下次執行此程序時,您將擁有一個基本歷史記錄,您可以使用您
Up-arrow
和Down-arrow
鍵滾動該歷史記錄。預設情況下,歷史記錄將儲存在~/.cat_history
.有關詳細資訊,請參閱
rlwrap
(man rlwrap
) 的手冊。