Bash 提示符的非打印字符列表

Bash 提示符的非打印字符列表

我找到了一些文档,列出了 bash 提示符使用非打印字符的一些功能(例如 \E[33;44m 在蓝色背景上打印黄色文本),但我到处都只找到非常具体的例子,而没有对这些特殊字符的真正解释,也没有这些字符可能实现的所有内容的完整列表。

有时,示例使用 \033[ 前缀,有时使用 \E[,两者之间有区别吗?

到目前为止,我知道以下情况是可能的:

使用颜色:\E[33;44m
将光标移动到特定位置(第 10 行,第 20 列):\033[10;20H
隐藏光标:\E[?25l
显示光标:\E[?25h

还有其他神奇的组合吗?我在哪里可以找到这些特殊字符的完整列表以及如何使用它们?

答案1

有时,示例使用 \033[ 前缀,有时使用 \E[,两者之间有区别吗?

第一层:\“转义字符”C和其他编程语言。\033并且\x1B是 C 风格的八进制和十六进制转义符,用于ASCII 控制字符 ESC(十六进制字节 0x1B)。\e\E也是 C 的一部分,并且表示相同的ESC字符,但不那么常见。

无论您使用上述哪种方式,ESC都会插入相同的内容,但\e输入起来比 更短\033

还有其他神奇的组合吗?我在哪里可以找到这些特殊字符的完整列表以及如何使用它们?

第二层:类似地,ASCIIESCANSI 转义代码VT100终端及其后代。可用的代码不取决于bash,而是取决于您使用的特定终端仿真器。可能都支持在ECMA-48,但这只是一个很小的子集。

Xterm 控制序列页面上有一个详尽的列表,但你需要查找你正在使用的任何工具的文档,无论是gnome-terminalKonsole,rxvt或者其他。有些是特定于 Linux 控制台 (tty)

相关内容