在我的 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: "