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 包裝問題的原因嗎?

相關內容