.bashrc 和 .bash_profile 中列出的终端 git 状态助手不会加载,除非你提供 .bash_profile

.bashrc 和 .bash_profile 中列出的终端 git 状态助手不会加载,除非你提供 .bash_profile

我有以下在线找到的简洁助手,如果我在 git repo 中,它会始终显示我当前的 git 分支:

parse_git_branch() {
     git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
export PS1="\u@\h \[\e[32m\]\w \[\e[91m\]\$(parse_git_branch)\[\e[00m\]$ "

我有它在我的.bashrc

# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

parse_git_branch() {
     git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
export PS1="\u@\h \[\e[32m\]\w \[\e[91m\]\$(parse_git_branch)\[\e[00m\]$ "

source ~/.bash_profile
...

.bash_profile出于某种原因我也把它放在我的

parse_git_branch() {
     git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
export PS1="\u@\h \[\e[32m\]\w \[\e[91m\]\$(parse_git_branch)\[\e[00m\]$ "

如果我运行source ~/.bash_profile'它,它会工作,并显示 git 分支。但是,如果我通过按 ctrl+shift+t 添加新终端,它会在右侧添加一个新终端,但它不会显示。如果我清除 ubuntu 终端并重新打开它并 cd 到 git repo,它也不会显示。

答案1

事实证明,PS1决定终端显示的变量还有更多设置。在.bashrc文件大约一半的位置:

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

如果我将 git 分支显示移到底部,.bashrc它现在在打开任何新终端时都可以工作

相关内容