我有以下问题:
我已经设置了我当前所在的分支,在我的命令提示符中显示如下:
" [Current_working_dir](主)"
然而,每次切换分支时,我都会收到以下错误,并且分支没有刷新:
[work_environment] (master) git checkout test
M bash/bashrc
Switched to branch 'test'
[work_environment] (master)
我的.bashrc如下所示:
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"
# Bash git completion
source /etc/bash_completion.d/git-prompt
#Colored command prompt + minimum view
export PS1="\[\e[0;34m\][\[\e[1;34m\]\W\\[\e[0;34m\]]\[\e[0m\]\[\e[0;32m\]$(__git_ps1)\[\e[0m\] "
任何人都可以告诉我我做错了什么吗?我似乎无法找到有关此错误的任何内容
答案 0 :(得分:3)
您的问题是此行上的双引号:
export PS1="\[\e[0;34m\][\[\e[1;34m\]\W\\[\e[0;34m\]]\[\e[0m\]\[\e[0;32m\]$(__git_ps1)\[\e[0m\] "
正在评估该行立即,而__git_ps1
仅被调用一次。
尝试echo "$PS1"
看看我的意思。
你想要单引号。 PS1
的值在使用之前进行评估,以便在该点正确调用函数(并查看当前分支/等)。
export PS1='\[\e[0;34m\][\[\e[1;34m\]\W\\[\e[0;34m\]]\[\e[0m\]\[\e[0;32m\]$(__git_ps1)\[\e[0m\] '
答案 1 :(得分:1)
在PS1声明周围使用单引号而不是双引号。此时评估变量然后设置为PS1。您希望每次使用PS1时都要对它们进行评估。