我遇到过诸如\033[999D和 之类的bash 序列\033[2K\r,它们用于对终端上的打印输出进行一些操作。但是这些序列是什么意思呢?我在哪里可以找到网络上的列表/摘要来帮助我找出这些序列的含义?
Gra*_*eme 36
请参阅此链接http://www.termsys.demon.co.uk/vtansi.htm。正如Anthon所说,\033 是转义字符的C风格八进制代码。将[999D光标移动回999列,想必让该行的开始的强制方法。[2K擦除当前行。\r是一个回车,它将把光标移回当前行的开头,是一个 C 风格的转义序列,而不是一个终端控制序列。
正如其他人所指出的那样,这些控制序列与bash自身无关,而是与文本出现的终端设备/模拟器有关。曾几何时,这些序列由完全不同的硬件解释是很常见的。最初,每个人都会响应完全不同的代码集。为了解决这个问题的termcap,并terminfo文库,其中用于与多个终端兼容编写代码。该tput命令是terminfo库的接口(termcap也可以编译支持)并且是创建兼容序列的更强大的方式。
也就是说,还有ANSI X3.64 或 ECMA-48标准。任何现代终端实现都将使用它。terminfo并且termcap仍然相关,因为实现可能不完整或包含非标准扩展,但是对于大多数目的,可以安全地假设常见的 ANSI 序列将起作用。
本xterm FAQ提供的终端仿真器之间的差异了一些有趣的信息(许多只是试图模仿xterm本身),以及如何xterm序列涉及到上面的链接中提到的VT100终端。它还提供了一个明确的xterm控制序列列表。
当然,还常用的是 Linux 控制台,可以在 中找到其控制序列的明确列表man console_codes,以及与xterm.
的\033是转义字符,而那些序列不bash的具体解释,但由终端(软件或硬件(通过网络或串行线)),其中(bash)的程序运行。有很多这样的序列。
每个人做什么,取决于它所依赖的终端,也可能取决于任何先前改变终端状态的序列。
这些通常用于在 bash prompt 中设置颜色,但我在该页面上没有找到您的特定示例。