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

Spi*_*rit 3 bash prompt

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

在我的 CentOS 虚拟机上,我为我的 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
Run Code Online (Sandbox Code Playgroud)

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

自定义 bash 提示

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

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

输入长命令

按 CTRL-A 后:

在此处输入图片说明

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

在此处输入图片说明

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

在此处输入图片说明

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

有什么想法吗?

yae*_*shi 5

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

PS1="\n\[\e[0;97m\][\D{%d%m%y-%H%M}][\u@\h \W] \n\[\e[0m\]\$ "
Run Code Online (Sandbox Code Playgroud)