我使用的是全新安装的 Lubuntu 14.04。我使用的是 LXTerminal,这是我通过 .bashrc 文件设置的提示:
export PS1="\e[0;36m$ \w \e[m"
假设我输入一个最多 15 个字符的命令(并执行以便将其记录到历史记录中)(不要介意“未找到命令”):
$ ~ 012345678901234
012345678901234: command not found
现在如果我按向上箭头,我就会得到我的命令:
$ ~ 012345678901234
如果我按下向下箭头,我就会回到裸提示:
$ ~
问题 如果我要运行 16 个或更多字符,则会出现问题:
$ ~ 0123456789012345
0123456789012345: command not found
现在,当我按下向上箭头时,就会正常显示上一个命令:
$ ~ 0123456789012345
按下向下箭头不会让我回到空白提示符,它会以某种方式记住我历史记录中第一个超过 16 个字符的命令的 10 个字符,并显示它直到运行其他任何命令。它基本上暂时成为我的默认提示符。
$ ~ 0123456789
我现在可以按回车键将其删除,或者我可以运行任何其他命令。为了举例说明,如下所示:
$ ~ 0123456789ls
Desktop Documents Downloads Music Pictures Public Templates Videos
我该怎么做才能解决这个问题?这不是什么大问题,但是很烦人。
答案1
您需要将颜色代码包裹\[
起来\]
PS1='\[\e[0;36m\]$ \w \[\e[m\]'
此外,PS1 仅与您的交互式 shell 相关,您不需要将其导出到子进程。