alternate screen被许多"用户交互"终端应用程序使用,比如vim、htop、screen、alsamixer、less等等...它就像终端内容的另一个缓冲区,当应用程序退出时,缓冲区就会消失,所以整个终端都会恢复,看起来应用程序没有输出任何内容.
我希望在我自己的shell(bash)脚本中实现完全相同的功能,只是它不需要那么便携.我坚持只使用linux和基于xterm的终端模拟器;但如果可能的话,解决方案应该使用tput
左右.然而,我不想使用一些外部脚本语言(甚至像C这样的语言).
虽然我不想使用C(因为它应该是一个依赖项尽可能少的bash脚本),但我还是研究了less的源代码.它似乎使用terminfo作为数据库,并在初始化时查找"ti"终端功能.当删除该行时,它不使用备用sceen,所以我假设我找到了负责的代码行.
然而,我在man terminfo
台电脑中找不到这样的功能.但也许我在寻找解决方案的道路上走错了.也许terminfo/tput不是我的朋友.
那么(如何)在bash脚本中使用备用屏幕呢?有人知道一个简单的应用程序,在它的源代码中我可以找到提示吗?(C应用程序或bash脚本或其他任何内容)