我找到了一些文档,列出了 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
。
还有其他神奇的组合吗?我在哪里可以找到这些特殊字符的完整列表以及如何使用它们?
第二层:类似地,ASCIIESC
是ANSI 转义代码由VT100终端及其后代。可用的代码不取决于bash
,而是取决于您使用的特定终端仿真器。可能都支持在ECMA-48,但这只是一个很小的子集。
这Xterm 控制序列页面上有一个详尽的列表,但你需要查找你正在使用的任何工具的文档,无论是gnome-terminal
Konsole,rxvt
或者其他。有些是特定于 Linux 控制台 (tty)。