Command
在腳本中清除全屏並在退出腳本後獲取之前的提示
今天我
glance
在辦公室使用工具來監控 CPU 使用率。當我glance
從終端執行時,該命令會清除螢幕,當我退出終端時完成所有工作,之前的提示仍然存在於我的螢幕上。我的意思是我可以看到前面的所有行。我的問題是這個清除螢幕的效果是如何實現的。如果他們使用了類似的命令clear
,它應該清除整個螢幕,他們是如何設法恢復之前的所有提示?我想為我的一些腳本實現相同的功能。同樣在使用
vi
命令時,螢幕是滿屏的,退出後也可以查看之前的提示。
許多終端仿真器維護終端輸出的兩個副本:正常螢幕緩衝區和備用螢幕緩衝區。普通緩衝區用於命令行應用程序,這些應用程序通常不會將游標移出目前行並提供回滾。備用緩衝區用於全屏應用程序,不提供回滾。
Glance、vi等啟動時切換到備用螢幕,退出時切換回來。
在 xterm 中,您可以通過在滑鼠中鍵菜單中切換“顯示備用螢幕”來查看非目前螢幕。
從腳本中,您可以獲得在螢幕之間切換的控制序列
tput smcup
和tput rmcup
(smcup
以及切換到和退出全屏模式rmcup
的terminfo功能)。