我知道非打印字符可能会扰乱 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 包装问题的原因吗?