追加git';将分支名称添加到命令提示符

追加git';将分支名称添加到命令提示符,git,bash,shell,Git,Bash,Shell,我想使用Git-completion.bash的一个特性,但是我无法定制我想要的外观。以下是我的.bash_档案的相关部分: source ~/.git-completion.bash function prompt { local WHITE="\[\033[1;37m\]" local GREEN="\[\033[0;32m\]" local CYAN="\[\033[0;36m\]" local GRAY="\[\033[0;37m\]" local BLUE="\[\033[0;34m

我想使用Git-completion.bash的一个特性,但是我无法定制我想要的外观。以下是我的.bash_档案的相关部分:

source ~/.git-completion.bash

function prompt
{
local WHITE="\[\033[1;37m\]"
local GREEN="\[\033[0;32m\]"
local CYAN="\[\033[0;36m\]"
local GRAY="\[\033[0;37m\]"
local BLUE="\[\033[0;34m\]"
export PS1="
${GREEN}\u${CYAN}@${BLUE}\h ${CYAN}\w $(__git_ps1 '(%s)') ${GRAY}
$ "
}
prompt
而且它不显示分支名称

但是,如果我将上面的导出PS1替换为下面的导出PS1,它将按预期工作:

export PS1='\w$(__git_ps1 "(%s)") > '
我想这是撇号/引号的问题


我应该如何更正第一个版本才能使其正常工作?

不确定,但可能会更好地为您解决问题?

正确引用的诀窍是将所有内容都用双引号引起来,除了单引号的
$(%s)

source ~/.git-completion.bash
function prompt
{
local WHITE="\[\033[1;37m\]"
local GREEN="\[\033[0;32m\]"
local CYAN="\[\033[0;36m\]"
local GRAY="\[\033[0;37m\]"
local BLUE="\[\033[0;34m\]"
export PS1="
${GREEN}\u${CYAN}@${BLUE}\h ${CYAN}\w"' $(__git_ps1 "(%s)") '"${GRAY}"
}
prompt
另一种解决方案是将问题代码中的
\$(
替换为
\$(


背景信息:有两种替换发生:第一种是在
export PS1=“…”
时间,第二种是在显示提示时。您希望在每次显示提示时都执行
\uu git\u PS1
,因此您必须确保第一次替换保持
$(…)
不变。因此您可以编写
'$(…)“
”\$(…)”
。这是我提出的解决方案背后的两个基本想法。

它可能没有涵盖git-completion.bash中的所有选项,但我非常喜欢它也提供了其他版本控制系统的信息。感谢您的提示!使用局部颜色是一个很好的技巧,可以让事情可读。我肯定是在偷这个主意。对其他人来说,我有点喜欢用黄色作为我的路径-
localyellow=“\[\033[0;33m\]”