我的 bash 提示有问题?

我的 bash 提示有问题?

因此,当我使用新的 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\]在提示结束后将颜色重置为默认值。

相关内容