根据 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
* 不过,对于大多数这些用例,您通常希望使用tput
terminfo 感知并且使用起来更直观。不过,这两个基本示例应该是普遍理解的。