在我的 bashrc 文件中,我的提示设置如下:
TC_GRE="^[[0;32;40m"
TC_RESET="^[[0m"
PS1="${TC_GRE}i:${TC_RESET}"
Run Code Online (Sandbox Code Playgroud)
因此,提示只是一个绿色的“i:”。当我在 shell 中工作并在历史记录中向上滚动时,我的命令行搞砸了。考虑以下:
i: shell_command_one
i: shell_command_two
i: shell_command_three
Run Code Online (Sandbox Code Playgroud)
现在,当我进入我的历史记录时,这条线可能看起来像这样:
i: shell_comshell_command_two
Run Code Online (Sandbox Code Playgroud)
如果我按回车键,它会执行 shell_command_two。(注意 shell_com 只是终端上的垃圾字符。
我怀疑这可能与非打印颜色字符有关。有谁知道如何在 bash 中解决这个问题?
ps我不确定这是否更好地发布在超级用户上,但我认为这可能是最好的,因为它是关于 bash 脚本的。
看起来您的 CSI颜色代码格式不正确。在你的.bashrc文件中试试这个:
TC_GRE="\[\033[0;32m\]"
PS1="${TC_GRE}i: "
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1559 次 |
| 最近记录: |