我實作了一個包裝器腳本,它使透過此包裝器腳本執行的所有命令都記錄(透過 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