微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 在bash脚本中使用“备用屏幕”

备用屏幕被许多“用户交互”终端应用程序使用,如vim,htop,screen,alsamixer,less,……它就像终端内容的不同缓冲区,当应用程序退出时消失,所以整个终端恢复,看起来应用程序没有输出任何东西.

我想在我自己的shell(bash)脚本中实现完全相同的东西,除了它不必是可移植的.我坚持只使用linux和基于xterm的终端模拟器;但是如果可能的话,解决方案应该使用类似tput的东西.但是,我不想使用某些外部脚本语言(甚至是类似C的东西).

虽然我不想使用C(因为它应该是尽可能少的依赖项的bash脚本),但我查看了较少的源代码.它似乎使用terminfo作为数据库,并在其初始化中查找“ti”终端功能.删除行时,它不使用备用的sceen,所以我假设我找到了负责的代码行.

但是,我在man terminfo中找不到这样的能力.但也许我在错误的道路上寻找解决方案.也许terminfo / tput不是我的朋友.

那么(如何)我可以在bash脚本中使用备用屏幕?有人知道一个简单的应用程序,我可以在其中找到源代码提示吗? (C应用程序或bash脚本或其他……)

解决方法:

您可以使用以下命令切换到备用屏幕:

$tput smcup

并回来:

$tput rmcup

这些命令只输出终端的相应转义序列.如果它是XTERM,它们将等同于(更为人所知,但不那么优雅或便携):

$echo -e "\e[?1049h"

和:

$echo -e "\e[?1049l"

有关更多终端控制命令,请参阅man 5 terminfo.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐