清除脚本中的全屏并在退出脚本后获取之前的提示

清除脚本中的全屏并在退出脚本后获取之前的提示

glance今天我在办公室使用工具来监控 CPU 利用率。当我glance从终端运行时,该命令会清除屏幕,完成所有工作后,当我退出回到终端时,之前的提示仍然出现在我的屏幕上。我的意思是我可以看到前面的所有行。我的问题是这种清除屏幕的效果是如何实现的。如果他们使用了这样的命令clear,它应该清除整个屏幕,他们是如何设法恢复所有以前的提示的?我想为我的一些脚本实现相同的功能。

同样,当使用vi命令时,屏幕被完全占据,退出后我们也可以查看以前的提示。

答案1

许多终端仿真器维护终端输出的两个副本:正常屏幕缓冲区和备用屏幕缓冲区。正常缓冲区用于命令行应用程序,这些应用程序通常不会将光标移出当前行并提供回滚功能。备用缓冲区用于全屏应用程序,不提供回滚功能。

Glance、vi 和其他人在启动时切换到备用屏幕,在退出时切换回来。

在 xterm 中,您可以通过在鼠标中键菜单中切换“显示备用屏幕”来查看非当前屏幕。

从脚本中,您可以使用 和tput smcup(tput rmcup获取在屏幕之间切换的控制序列smcup,并且rmcup术语信息切换到和退出全屏模式的功能)。

相关内容