自定义bash提示PS1



我用自定义我的bash提示

PS1='e[0;36mu.h
e[0;31m $ux e[0;92m e[0;36m @* e[0;31mwne[0;92m$ '

输出工作正常,看起来很好

但是当我使用箭头键在历史中滚动时

滚动5-10次后,我无法移动到行的开头来修改

我找到的代码/命令和

我看到最后一个命令的一部分

我执行的命令:

$ps aux|grep ssh

滚动后,我看到

作为提示行中的一个示例

$ps aux并且我只能在auxTR之后开始写入

所以我按下ctrl+c以获取新的行/取消命令

我是否忘记了$后面的字符?

这是我的提示:

z4o.ubuntu
12:46 * /
$

当我复制/粘贴长命令时,我有同样的问题

您必须将不可见的序列放入[ ](或x01 x02字节(中。请参阅Bash手册。

PS1='[e[0;36m]printable stuff[e[sequence]'

Bash不知道显示的字符占用了多少列。e[0;36m打印7个字符,但不移动光标。你必须把这件事告诉Bash。

最新更新