因此,当我使用新的 bash 提示符输入时,它会持续一段时间,但如果命令太长,它会自行循环并覆盖 bash 提示符。这是我的 PS1:
PS1='\e[0;34m\A\e[m | \e[0;31m-\e[m \e[0;32m>>\e[m '
作为参考,以下是标准 .bashrc 中与 PS1 相关的行:
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
答案1
您需要将转义序列括在\[ \]
:
PS1='\[\e[0;34m\]\A\[\e[m\] | \[\e[0;31m\]-\[\e[m\] \[\e[0;32m\]>>\[\e[m\] '
这与@user107425 的答案基本相同,但使用\e
而不是\033
语法,并\[\e[m\]
在提示结束后将颜色重置为默认值。