我想使用Git-completion.bash功能之一,但我无法自定义我想拥有的外观.这是我的.bash_profile的相关部分:
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
Run Code Online (Sandbox Code Playgroud)
并且它不显示分支名称.
但是,如果我将上面的导出PS1替换为下面的导出PS1,它将按预期工作:
export PS1='\w$(__git_ps1 "(%s)") > '
Run Code Online (Sandbox Code Playgroud)
我想这是一些撇号/引号问题.
我应该如何纠正第一版以使其工作?
pts*_*pts 31
获得正确引用的诀窍是将eveything双引号,除了$(__git_ps1 "(%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
Run Code Online (Sandbox Code Playgroud)
一种替代的解决方案是替代$(与\$(在问题的代码.
背景信息:进行两次替换:首先是export PS1="..."时间,然后是显示提示的时间.您希望__git_ps1每次显示提示时执行,因此您必须确保第一个替换保持$(...)不变.所以你写的'$(...)'或者"\$(...)".这些是我提出的解决方案背后的两个基本思想.
| 归档时间: |
|
| 查看次数: |
6533 次 |
| 最近记录: |