下一篇 上一篇 目录

3. 动态标题

许多人发现将终端的标题设置为反映动态信息非常有用,例如用户登录的主机名、当前工作目录等。

3.1 xterm 转义序列

在运行中的 xterm 中,可以使用 XTerm 转义序列来更改窗口和图标标题。以下序列在这方面非常有用

其中 ESC转义字符 (\033),而 BEL响铃字符 (\007)。

在 xterm 中打印这些序列之一将导致窗口或图标标题被更改。

注意:这些序列适用于大多数 xterm 衍生版本,例如 nxtermcolor-xtermrxvt。其他终端类型通常使用不同的转义序列;有关示例,请参阅附录。有关 xterm 转义序列的完整列表,请参阅 ctlseq2.txt 文件(随 xterm 发行版提供)或 xterm.seq 文件(随 rxvt 发行版提供)。

3.2 打印转义序列

对于在 shell 生命周期内保持不变的信息,例如主机和用户名,只需在 shell rc 文件中简单地 echo 转义字符串就足够了。

echo -n "\033]0;${USER}@${HOST}\007"
应该会生成类似 username@hostname 的标题,假设 shell 变量 $USER$HOST 已正确设置。echo 所需的选项可能因 shell 而异(请参阅下面的示例)。

对于在 shell 生命周期内可能发生变化的信息,例如当前工作目录,确实需要在每次提示符更改时应用这些转义序列。这样,字符串会在您发出的每个命令后更新,并且可以跟踪诸如当前工作目录、用户名、主机名等信息。一些 shell 提供了用于此目的的特殊功能,有些则没有,我们必须将标题序列直接插入到提示符字符串中。这将在下一节中进行说明。


下一篇 上一篇 目录