如何根据我所在的目录设置不同的 .bashrc PS1?

如何根据我所在的目录设置不同的 .bashrc PS1?

我有git-prompt.sh在我的文件中设置脚本.bashrc,它为我提供了有用的 git 信息。这对于小型存储库非常有用,但是当我cd进入大型存储库时,它可能需要 30 多秒才能响应,因为它需要先查看 git 存储库。

是否可以设置我的.bashrc,以便我可以将我的小型存储库列入白名单,以便 git 提示符显示,或者将我的大型存储库列入黑名单,以便它不加载 git 提示符?
或者,我很乐意设置一个标志/变量来启用 git 提示符。

我的相关部分.bashrc如下所示:

##
# Git prompt options
##
source ~/.git-prompt.sh
GIT_PS1_SHOWDIRTYSTATE=true
GIT_PS1_SHOWSTASHSTATE=true
GIT_PS1_SHOWUNTRACKEDFILES=true
GIT_PS1_SHOWUPSTREAM="auto"

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]$(__git_ps1 " (\[\033[01;33m\]%s\[\033[00m\])")\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(__git_ps1 " (\[\033[01;33m\]%s\[\033[00m\])")\$ '
fi
unset color_prompt force_color_prompt

答案1

看一下代码 - 真正的工作是在函数中完成的__git_ps1,该函数从提示内部调用。

用您自己的函数替换该函数,例如

# this is only a outline of possible code 
function myFancyGitPS1() {
   case $(pwd) in
      */someDir/*)
           specialHandling
           ;;
      *)
           __git_ps1 " (\[\033[01;33m\]%s\[\033[00m\])"
          ;;
   esac
}

相关内容