当前位置: 首页 > 面试题库 >

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

平学
2023-03-14
问题内容

备用屏幕
用于通过像vim,HTOP,屏幕,alsamixer中,以下,…它像一个不同缓冲液中的终端的内容的,其消失的应用程序退出时,所以整个终端许多“用户交互式”应用终端恢复后,看起来应用程序没有输出任何东西。

我想在自己的shell(bash)脚本中实现完全相同的功能,除了它不必具有可移植性。我只会使用linux和基于xterm的终端仿真器;但解决方案应尽可能使用类似tput的方法。但是,我不想使用某些外部脚本语言(甚至不喜欢C语言)。

尽管我不想使用C(因为它应该是具有尽可能少的依赖项的bash脚本),但我研究了更少的源代码。似乎使用terminfo作为数据库,并在初始化时查找“
ti”终端功能。删除该行时,它不使用备用场景,因此我假设我找到了负责的代码行。

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

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


问题答案:

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

$ tput smcup

然后返回:

$ tput rmcup

这些命令只是为您的终端输出适当的转义序列。如果是XTERM,它们将等效于(更广为人知,但不太优雅或便携):

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

和:

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

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



 类似资料:
  • 问题内容: 我有一个python脚本,该脚本在运行时会在终端上记录信息,我想将此记录信息发送到文本文件, 为了实现这一点,我正在插入文件 在文件末尾,我放入 问题是当它调用第一个命令时,它将终止脚本, 提前感谢我如何做这项工作的任何建议 问题答案: 问题在于,直到退出产生的外壳程序才返回,这时您的Python脚本将恢复。 执行所需操作的最简单方法是使用Python脚本作为参数来调用自身。代替 您将

  • 问题内容: 我正在尝试从我的Perl程序中运行Bash命令。但是Perl似乎使我的Bash $ PWD环境变量与Perl变量混淆了。 我如何才能将其全部读取为字符串? 这就是我要运行的 这些反引号在Bash中运行第二行。使用System()会产生相同的问题。 有任何想法吗? 问题答案: 这里有两个查询,关于使用Bash变量和运行外部命令。 Perl中有哈希,带有环境变量 但是,通常最好在脚本中使用

  • 问题内容: 我正在尝试使用命令记录bash会话。 该命令是从bash脚本开始执行的,但是一旦执行,bash脚本就会终止。 我尝试使用各种组合来始终以相同的结果调用命令(调用该命令后立即终止bash脚本)。我得到的输出如下: 我也尝试过最后用a来调用命令,但是再次失败了。 谁能告诉我如何从bash脚本调用命令? 谢谢 问题答案: 您的Shell脚本没有终止。它仍在运行。您会收到提示,因为正在生成新的

  • 问题内容: 我想尝试使用npm为Web应用程序运行各种构建任务。我知道我可以这样添加一个字段来做到这一点: 当您使用带有许多选项的更复杂的命令时,这变得很笨拙。是否有可能将这些命令移至bash脚本或类似的东西?就像是: 在文件中的哪里执行命令? 阅读这篇文章似乎是这样,但是我不清楚我应该在哪里放置文件或者丢失了什么。 问题答案: 完全有可能… 另外,请确保在bash文件的顶部放置一个哈希爆炸 还请

  • 我看到窗口上Docker的快捷方式是: 我在< code>Cmder/ConEmu中使用< code>git-bash。 当我在控制台中启动时,我想执行这个脚本,所以我将所有终端都放在一个程序中的选项卡中,而不是放在这里的git bash和那里的docker中。 我很难找到正确的方法来得到这个。要运行的sh文件。我发现报价不同于从windows快捷方式运行新的终端窗口。 我试过了: 退货: 未安装

  • 问题内容: 我知道我可以使用以下命令从bash脚本运行python脚本: 但是,如果我想将变量/自变量从bash脚本传递到python脚本,该怎么办?我怎样才能做到这一点? 基本上,bash会计算出文件名,然后python将其上传,但是当我调用它时,我需要将文件名从bash发送到python。 问题答案: 要在bash脚本中执行python脚本,您需要调用与终端相同的命令。例如 要在python中