我是 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/