Bash Prompt 中的颜色弄乱了提示符

Bash Prompt 中的颜色弄乱了提示符

在我的 bashrc 文件中,我将提示设置如下:

  TC_GRE="^[[0;32;40m"                                                          
  TC_RESET="^[[0m"                                                              
  PS1="${TC_GRE}i:${TC_RESET}"  

因此,提示符只是一个绿色的“i:”。当我在 shell 中工作并向上滚动历史记录时,我的命令行会混乱。请考虑以下情况:

i: shell_command_one
i: shell_command_two
i: shell_command_three

现在,当我回顾我的历史记录时,该行可能看起来像这样:

i: shell_comshell_command_two

如果我按下回车键,它就会执行 shell_command_two。(请注意,shell_com 只是终端上的垃圾字符。)

我怀疑这可能与彩色字符无法打印有关。有人知道如何在 bash 中修复此问题吗?

ps:我不确定这是否更适合发布在超级用户身上,但我认为在这里发布可能是最好的,因为它是关于 bash 脚本的。

答案1

您的 CSI 似乎格式错误色标.bashrc. 在你的文件中尝试这个:

TC_GRE="\[\033[0;32m\]"                                                          
PS1="${TC_GRE}i: "  

相关内容