Bash 浏览历史时提示bug

Bash prompt buggy when going through history

我已经自定义了我的 PS1 bash 变量,但是当我查看历史记录时,它开始出现错误并做一些奇怪的事情。我已经检查了好几次,但似乎找不到任何错误。

\[\e]0;\u@\h: \w\a\]\[3[01;32m\]\u@\h\[3[00m\]\[\e[31m\] (production)\[\e[0m:\]\[3[01;34m\]\w\[\e[m\]$

回顾历史,开始表现怪异的那一刻,似乎与需要换行的长行有某种关系...

问题出在\[\e[0m:\]。冒号 : 是一个打印字符,因此它应该在非打印分隔符之外,即 \[\e[0m\]:.

以后如果您的 PS1 有问题,请尝试将其分解成块并逐个测试。