BASH ANSI-C 引用 - 什么是转义字符 \E

BASH ANSI-C 引用 - 什么是转义字符 \E

根据 GNU Bash 手册(第 3.1.2.4 节 ANSI-C 引用) $'\E' 应扩展为“转义字符(不是 ANSI C)”。这个转义字符是什么?它是相当于反斜杠“ ”本身的字符,\其功能是保留后面的下一个字符的字面值吗?

如何在终端上演示它,例如使用命令 echo?

答案1

$'\E'代表ASCII 转义字符(例如\x1b/ \033/ CtrlV+ Esc),而不是反斜杠:

% printf '%x\n' \'$'\E'
1b

该字符的一个常见用途是指示控制序列:后续字节的一部分的替代解释。例如,它通常作为 shell 提示符的一部分使用ANSI 转义序列指示终端应该为某些文本着色,或者由应用程序要求终端定位光标等等。*

% printf '\033[36m%s\033[0m\n' 'this is in cyan'
this is in cyan
% printf '\033[2J'  # clear the screen

* 不过,对于大多数这些用例,您通常希望使用tputterminfo 感知并且使用起来更直观。不过,这两个基本示例应该是普遍理解的。

相关内容