我是git的新手,正在尝试将当前git分支添加到我现有的提示中,其定义如下:

RESET="\[\017\]"
NORMAL="\[\033[0m\]"
RED="\[\033[31;1m\]"
YELLOW="\[\033[33;1m\]"
WHITE="\[\033[37;1m\]"
SMILEY="${WHITE}:)${NORMAL}"
FROWNY="${RED}:(${NORMAL}"
SELECT="if [ \$? = 0 ]; then echo \"${SMILEY}\"; else echo \"${FROWNY}\"; fi"

export PS1="${RESET}${YELLOW}\u@\h${NORMAL} \`${SELECT}\` ${YELLOW}\w $(__git_ps1) >${NORMAL} "

我尝试了一下(通过再次采购.bashrc文件),它似乎可以正常工作,但是后来我转到另一个分支,并且没有更新。如何确定$(__git_ps1)没有缓存?

最佳答案

您需要在$上加一个反斜杠,以便它不会立即展开。 (与`...`相比,这是编写$(...)的另一种方式。)

export PS1="${RESET}${YELLOW}\u@\h${NORMAL} \`${SELECT}\` ${YELLOW}\w \$(__git_ps1) >${NORMAL} "

我同意@MikeSep关于使用单引号的说法,但是实际上让颜色立即替换是更好的选择。没必要,只是更好一点。就是说,如果使用单引号,则更容易理解发生了什么。

关于git - 为什么我的bash提示不更新?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5379986/

10-11 17:32