我知道有很多相关的问题,但是我找不到任何其他方法来获得有关此问题的帮助:
在我的 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 现在看起来像这样:
但是,如果我输入一个长命令并且想使用 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\]\$ "