这是$PS1
我在新安装的 Ubuntu 18.04 上的 Bash shell:
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\] \$
我可以很好地理解提示的所有其他部分:
${debian_chroot:+($debian_chroot)}
:如果已设置,则显示它,但在其周围添加括号;如果未设置,则不显示\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\] \$
user@host:cwd $
:使用 CSI 转义序列启用颜色的标准提示
我对第一部分感到困惑:
\[\e]0;\u@\h: \w\a\]
AFAIK,\[
并\]
扩展到\001
并\002
告诉 GNU readline,它们之间的字符不应计入“提示长度”。这个问题可以归结为这个意思:
\e]0;\u@\h: \w\a
是<ESC>]0;user@host: cwd<ALARM>
。那有什么作用?(注:CSI<ESC>[
不是<ESC>]
,否则我会理解的)
这是一个XTerm 转义序列,它设置图标名称和窗口标题。大多数图形终端仿真器(以及一些非图形终端仿真器)都支持它。