bash 提示符换行问题

bash 提示符换行问题

我知道非打印字符可能会扰乱 bash 的换行行为,但我已经观察我的 PS1 一段时间了,它似乎没有任何问题。

这是我的提示代码.bashrc

reset="\[\033(B\033[m\]" 
fgblack="\[\033[30m\]" 
bgblack="\[\033[40m\]" 
fgred="\[\033[31m\]" 
bgred="\[\033[41m\]" 
fggreen="\[\033[32m\]" 
bggreen="\[\033[42m\]" 
fgyellow="\[\033[33m\]" 
bgyellow="\[\033[43m\]" 
fgblue="\[\033[34m\]" 
bgblue="\[\033[44m\]" 
fgmagenta="\[\033[35m\]" 
bgmagenta="\[\033[45m\]" 
fgcyan="\[\033[36m\]" 
bgcyan="\[\033[46m\]" 
fgwhite="\[\033[37m\]" 
bgwhite="\[\033[47m\]" 
bolded="\[\033[1m\]" 
dim="\[\033[2m\]" 
italic="\[\033[3m\]" 
underlined="\[\033[4m\]" 

PROMPT_COMMAND=__prompt_command

__prompt_command() {
    local EXIT="$?"
    PS1="${bolded}[ ${fgblue}\w ${reset}${bolded}]\n"

    if [ $EXIT != 0 ]; then
        PS1+="${fgblack}${bgwhite}"
    else 
        PS1+="${fggreen}"
    fi

    PS1+="\u${reset}@${fgmagenta}\h ${reset}\$ "
}

谁能找出我典型的 bash 包装问题的原因吗?

相关内容