Windows Git bash提示符不显示函数中的颜色

Windows Git bash提示符不显示函数中的颜色,windows,bash,prompt,git-bash,Windows,Bash,Prompt,Git Bash,我在.bash_提示符中使用以下颜色代码/函数(摘自Paul Irish),在windows上的Git bash中显示分支名称和状态 MAGENTA="\033[1;31m" ORANGE="\033[1;33m" GREEN="\033[1;32m" PURPLE="\033[1;35m" WHITE="\033[1;37m" BOLD="" RESET="\033[m" function git_info() { # check if we're in a git rep

我在.bash_提示符中使用以下颜色代码/函数(摘自Paul Irish),在windows上的Git bash中显示分支名称和状态

MAGENTA="\033[1;31m"
ORANGE="\033[1;33m"
GREEN="\033[1;32m"
PURPLE="\033[1;35m"
WHITE="\033[1;37m"
BOLD=""
RESET="\033[m"

function git_info() {

        # check if we're in a git repo
        git rev-parse --is-inside-work-tree &>/dev/null || return

        # quickest check for what branch we're on
        branch=$(git symbolic-ref -q HEAD | sed -e 's|^refs/heads/||')

        # check if it's dirty (via github.com/sindresorhus/pure)
        dirty=$(git diff --quiet --ignore-submodules HEAD &>/dev/null; [ $? -eq 1 ]&& echo -e "*")

        echo $WHITE" on "$PURPLE$branch$dirty
}
该功能可正确显示信息,但不会为两部分着色,而是打印出如下颜色代码:

\[\033[1;37m\] on \[\033[1;35m\]working*
$
这是使用以下(简化以说明问题)PS1行:

PS1="\$(git_info)\n$ "
我应该注意,如果代码直接添加到PS1行,则颜色工作正常,即:

PS1="\[$PURPLE\]\w\n$ \[$RESET\]"

我正在摸索bash定制的方法,所以可能会做一些明显愚蠢的事情

可能
echo-e
。从
人工回声

-e启用反斜杠转义的解释

此外,还可以在双引号内使用变量:

echo“$WHITE on$PURPLE$branch$dirty”

也许
echo-e
。从
人工回声

-e启用反斜杠转义的解释

此外,还可以在双引号内使用变量:

echo“$WHITE on$PURPLE$branch$dirty”