使用「更多」進行分頁標準輸出,並透過管道傳輸到系統日誌

使用「更多」進行分頁標準輸出,並透過管道傳輸到系統日誌

我實作了一個包裝器腳本,它使透過此包裝器腳本執行的所有命令都記錄(透過 rsyslog)諸如執行時間、運行命令的使用者和退出程式碼之類的資訊。

我正在嘗試實現分頁,但遇到了“更多”命令的問題。我的問題的根源是“更多”在通過管道傳輸到另一個程序時似乎會退出,例如

echo -e "this\nis\na\ntest" | more -3 | cat

這將列印 4 行,但如果我們修剪 '| cat' 位於最後,那麼它將在列印 3 行後暫停,正如預期的那樣。

不可否認,使用“更少”而不是“更多”確實有效,儘管這沒有達到預期的效果,因為它打開了一個單獨的“視窗”,一旦完成就不允許向後滾動(我不需要這種能力)以「less」允許的方式向後滾動)。

我目前的解決方案是使用“head”和“tail”命令來獲得我想要的效果,但還有一些其他挑戰需要面對。

有誰知道按照我設想的方式讓「更多」工作的秘訣嗎?也歡迎提供另一個更簡單的分頁工具(支援 Enter、空格和「q」操作)的建議。

謝謝你!

答案1

似乎使用tee重定向到文件和分頁標準輸出比在管道中間分頁更合適:

printf "%s\n" this is a test | tee /tmp/some.file | more -3

相關內容