自定义 bash 提示符 - 光标定位问题

自定义 bash 提示符 - 光标定位问题

我知道有很多相关的问题,但是我找不到任何其他方法来获得有关此问题的帮助:

在我的 CentOS VM 上,我为 bash 提示符创建了一个自定义脚本/etc/profile.d/custom.sh

PS1="\n\e[0;97m\][\D{%d%m%y-%H%M}][\u@\h \W] \n\e[m\]\$ "
export PS1

我的 bash 现在看起来像这样:

自定义 bash 提示符

但是,如果我输入一个长命令并且想使用 CTRL-A 将光标置于第一个位置,则会发生以下情况:

打字很长。我想更改行开头的某些内容,因此我将按 CTRL-A 将光标置于第一个位置:

输入长命令

按 CTRL-A 后:

在此输入图像描述

现在,如果我尝试用 DEL 或 BACKSPACE 删除整行,这就是最终结果吗?

在此输入图像描述

无论我如何尝试删除这 4 个字符,它们始终会保留下来,直到我按 ENTER 键。最后 4 个字符始终显示,但就像它们不存在一样。我可以随意键入命令,它们将被忽略:

在此输入图像描述

在最后一张图片中,我成功执行了cd /var命令,现在 bash 就如预期的那样了。

有什么想法吗?

答案1

你需要在\[每个之前\e

PS1="\n\[\e[0;97m\][\D{%d%m%y-%H%M}][\u@\h \W] \n\[\e[0m\]\$ "

相关内容