我的 Bash 提示符中有奇怪的字符?

我的 Bash 提示符中有奇怪的字符?

我对 Bash 提示有点陌生,但我终于能够让事情有点工作了。但是,我的提示符开头有一个奇怪的字符:

提示截图

这是我的实际PS1提示:

PS1='\[\e]2;\u@\h\a${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] '

有人能发现问题吗?我在这里做错了什么?

答案1

您错过了最后一个\]结束标题栏序列的情况。结果是它吃掉了一些字符并在前面显示了一个奇怪的字符。

尝试其中之一:

  • \[\033]2; \u@\h \007\]
  • \[\e]0;\u@\h\a\]

答案2

提示符的开头有一个片段:\[\e]2;\可能应该更像是:\[e[0;32m\]设置颜色绿色。

\[开始非打印字符序列。\e是 ascii 转义字符,绿色是0;32m

Arch Wiki 上对彩色提示的元素进行了很好的分解:https://wiki.archlinux.org/index.php/Color_Bash_Prompt

相关内容