目前,如果我从已经包含git项目的文件夹中启动bash,这是有效的。
PS1="${debian_chroot:+($debian_chroot)}\[$BPurple\]\u\[$BGreen\]@\[$BCyan\]\h\[$BGreen\]: \[$BBlue\]\w\[$Yellow\]`__git_ps1`\[$Green\] \$ \[$White\]"
我的问题是,如果我cd
进入git文件夹,则没有任何反应。然后,如果我开始使用git仓库,(其中(主)确实出现,如果我cd
到其他任何地方,(主)仍然出现在我的提示中。
因此,PS1
变量未更新。我该如何解决这个问题?
答案 0 :(得分:0)
尝试用简单的引号替换双引号 几乎在使用变量的地方
PS1='${debian_chroot:+($debian_chroot)}'"[$BPurple]\u[$BGreen]@[$BCyan]\h[$BGreen]: [$BBlue]\w[$Yellow]__git_ps1[$Green] \$ [$White]"
答案 1 :(得分:0)
试试这个:
PS1='${debian_chroot:+($debian_chroot)}[$BPurple]\u[$BGreen]@[$BCyan]\h[$BGreen]: [$BBlue]\w[$Yellow]$(__git_ps1)[$Green] \$ [$White]'
我只是用单引号替换双引号,并在命令替换中将调用包装到__git_ps1
。如果这不起作用(我的提示中暂时没有包含参数扩展),请尝试
PS1="..."'$(__git_ps1)'"..."
其中第一个'...'是'__git_ps1'之前的所有内容,第二个'...'是之后的所有内容。基本上,三个字符串连接在一起,第一个和第三个用双引号,第二个用单引号。