我使用以下命令在 Bash 终端中使用 Git 分支名称设置提示:
export PS1="\w $(git branch | grep '*') "
运行上述命令后,它第一次显示正确的 Git 分支名称export
。但是,当签出另一个 Git 分支时,提示不会更改为显示新的 Git 分支名称。
我猜测 subbash 命令 $(...) 只执行一次,如何让它在每次按下 Enter 后显示提示符时运行?
答案1
您需要设置PROMPT_COMMAND
。首先,定义一个在每次显示新提示时运行的函数:
function setps1()
{
PS1="\w $(git branch | grep '*') "
}
并将其分配给 PROMPT_COMMAND:
PROMPT_COMMAND=setps1
还可以查看以下项目 液体提示。
答案2
使用单引号(将传递给提示)而不是双引号(仅在创建时进行评估)设置 PS1。使用 PROMPT_COMMAND 和 PS1 时有一些规则,当我发现一条提到引号问题的评论时,我能够快速了解这些规则。
https://stackoverflow.com/questions/38429007/why-ps1-is-not-updated-with-the-git-branch-name