在终端第一行显示屏幕标题

l0b*_*0b0 8 gnu-screen terminal

当我启动一个新终端时,提示在第一行。工作一段时间后(或运行产生一些输出的命令),提示出现在最后一行。除非我按Ctrl- l, runclearreset类似的东西,否则它将在会话的其余部分停留在那里。

为了在工作中获得某种程度的连续性,我使用screen一个技巧在标题中显示会话名称(我使用最后一个和 中的两个screen命令.screenrc)。

为了避免因工作区混乱而造成认知开销,我希望将此标题显示在终端的顶部。

Ban*_*uin 3

你很幸运,屏幕确实支持保存和恢复命令。所以用bash就可以做到。

给出了如何使用特殊转义序列移动光标的说明。你可以写“Hello World!” 到左上角:

echo -e "\033[s\033[2;0HHello World!            \n                        \033[u"
Run Code Online (Sandbox Code Playgroud)

解释:字符\033[s保存当前光标位置,这就是我们想要的 b/c 屏幕终端尺寸可以变化很多。然后\033[2;0将光标移动到第三行第一个字符(我们从左上角开始计数,从 0 开始)。然后是文字和一些可能的说明。最后,代码\033[u将光标放回到发出的位置\033[s

此示例将光标移动到第二行,因为发出命令时会打印 2 个换行符,因此当前第三行将是第一行。

您可以将其与会话标题一起使用,您可以通过已链接的说明获得该标题。

  • 您可以使用“tput”以独立于终端的方式执行此操作,而无需对这些转义码进行硬编码。例如: `echo -n "$(tput sc)$(tput cup 0 0)----Hello, world----$(tput rc)"` (2认同)