Bash提示中的Git分支名称

我一直试图在我的 bash 提示符下获取 Git 状态,但没有任何成功。颜色变量有效,所以不是它们。这是我的 PS1 和解析函数。

PS1="${GREEN}ganymede@${BLUE}dawson:${ICYAN}W${RESET}${IYELLOW} $(parse_git_branch) $ " 

parse_git_branch() {
     git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* (.*)/ (1)/'
}

我的 PS1 缺少什么?

谢谢道森

回答

线路:

PS1="$anything"

或者:

PS1="$(command)"

这样写的手段:评价$anything现在运行command现在,即在当时你设置的变量PS1。让我们假设$anythingorcommand打印hello. 最终结果是:

PS1=hello

之后你会得到的提示是常量 string hello

PS1除其他外,您希望包含 string $(parse_git_branch)。这意味着您必须引用美元符号,例如:

PS1=$(parse_git_branch)

或者:

PS1="$(parse_git_branch)"

或者:

PS1='$(parse_git_branch)'

如果您愿意让所有 $var扩展都在以后进行,单引号方法既简单又有效。如果您希望现在进行一些扩展,请考虑,例如:

PS1="${GREEN}ganymede@${BLUE}dawson:${ICYAN}W${RESET}${IYELLOW} $(parse_git_branch) $ " 

或者:

PS1="${GREEN}ganymede@${BLUE}dawson:${ICYAN}W${RESET}${IYELLOW} "'$(parse_git_branch) $ ' 

请注意,其中一些未引用的内容是“安全的”,因为在扩展期间保持不变。SPACE$SPACE$SPACE


以上是Bash提示中的Git分支名称的全部内容。
THE END
分享
二维码
< <上一篇
)">
下一篇>>