如何在我的 bash 提示中避免这些虚假字符?

Har*_*ton 2 bash prompt

我有 Fedora 20,我想调整 bash 提示符以使其对我更有用。目前我的 PS1 提示是由我的 ~/.bash_profile 文件中的这些行设置的:

 LP=" Last prompt at: "
 PS1="\[\033[s\033[0;0H\033[0;47m\033[K\033[1;34m[\$LP\]t\033[0m\033[u[<\u@\h \W>]\$ "
 echo
Run Code Online (Sandbox Code Playgroud)

这在屏幕顶部给了我一条漂亮的线条,带有灰色条(在此副本中未显示)和上次提示的时间,因此:

[ Last prompt at: ]09:22:46
[<Harry@localhost ~>]$ 
Run Code Online (Sandbox Code Playgroud)

如果没有echo,当打开终端屏幕时,提示会掩盖顶行的消息。echo 的作用是回显它的参数,以便当 .bashrc 时。在打开新终端时运行,没有任何参数,它会很好地转到新行,只留下顶行。后续提示不会运行 .bashrc,因此不会出现对新行的回显。

我在这里的问题涉及Last prompt at:字符串周围提示中的“[]”括号。请问,如何避免这些括号出现在显示的消息中?

已解决
以回应@guido 的回答。我已经尝试删除方括号,但后来我完全丢失了字符串。我在这里注意到您在 LP 之后添加了一个空格,这确实给了我我想要的,但我不明白为什么需要空格:请您在答案中添加一个来解释一下?

gui*_*ido 5

只需从您的 PS1 中删除方括号(周围也有拼写错误\t):

LP=" Last prompt at: "
PS1="\[\033[s\033[0;0H\033[0;47m\033[K\033[1;34m\$LP \t\033[0m\033[u\][<\u@\h \W>]\$ "
echo
Run Code Online (Sandbox Code Playgroud)