我知道可以自定义提示(详见6.9 控制Bash 手册中的提示部分),我已经做了一段时间,但我最近注意到一些奇怪的行为。
考虑以下两种情况:
没有转义序列
PS1='\$ '
PS2='> '
PS3='#? '
PS4='+ '
带有转义序列
PS1='\[\e[1;34m\]\$\[\e[0m\] '
PS2='\[\e[1;34m\]>\[\e[0m\] '
PS3='\[\e[1;34m\]#?\[\e[0m\] '
PS4='\[\e[1;34m\]+\[\e[0m\] '
所以,问题是:
PS3
按原样打印,不解释转义序列。PS4
甚至没有打印出来。
我很确定它们以前曾经工作过,但是由于我不经常使用它们,所以我不知道它们何时行为不端。
技术细节
- 操作系统: Ubuntu 16.04.4
- 外壳: Bash 4.3.48(1)-发布
- 终端模拟器: GNOME Terminal 3.18.3(不过它也发生在虚拟终端中)
- 据我所知,自从安装系统(2017-06-09)以来,没有任何 Bash 更新。