Gnu-Screen

使用螢幕分割終端

  • May 8, 2018

bash腳本中,我想向使用者顯示一個帶有 的文件less,但我不想less佔用整個終端:當使用者使用 瀏覽文件時,我需要在終端中保持一些資訊可見less

我用Google搜尋terminal split linux,所有結果都指向該screen命令。

經過幾個小時的試驗結束錯誤,我相信我已經想出了一個主要工作的解決方案。我創建了一個screen.rc文件,其中包含:

split
screen 1 less /etc/passwd
focus down
resize 10
screen 2
exec !.. echo Informations area
focus up

現在,在我的bash腳本中,我可以執行

screen -c screen.rc

它創建了一個拆分終端,less /etc/passwd在頂部區域和Information area底部區域具有輸出,並且頂部區域正在接收使用者輸入,這正是預期的行為。幾乎完美,除非使用者點擊q終止lessscreen否則不會終止,因為底部區域仍有一個正在執行的外殼。使用者現在需要關注底部區域(CTRL+a TAB)並按 Ctrl+d 來終止正在執行的bash.

所以退出我的自定義less文件查看器的順序現在變成q CTRL+a TAB CTRL+d了:相當多的擊鍵只是為了退出文本文件查看器……

當 top region命令退出時,如何screen立即終止?less

發送quit命令將告訴螢幕退出,因此將less命令替換為:

screen 1 sh -c 'less /etc/passwd ; screen -S "${STY}" -X quit'

或類似的東西。

引用自:https://unix.stackexchange.com/questions/442646