lxterminal 提示不需要的字符

lxterminal 提示不需要的字符

我使用的是全新安装的 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 相关,您不需要将其导出到子进程。

相关内容