我有 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 之后添加了一个空格,这确实给了我我想要的,但我不明白为什么需要空格:请您在答案中添加一个来解释一下?
只需从您的 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)