我在得到这个漂亮的小东西我.bashrc
:更改PS1只有当某个子是不是已经在PS1(bash)的
has_gitbranch() {
if [ -e .git ]; then
GIT_BRANCH='$(__git_ps1 "%s")'
[ "$GIT_BRANCH" != 'master' ] && export PS1="$GIT_BRANCH$PS1"
fi
}
venv_cd() {
cd "[email protected]" && has_gitbranch
}
alias cd="venv_cd"
(我没有写我自己,不能记得我来自哪里得到它)
的问题是,如果我进入的目录是git仓库发生这种情况:
[email protected]:~/directory $
这很好,但如果我再次进入该目录,会发生什么(例如cd .
),那么出现这种情况:
[email protected]:~/directory $
并再次:
[email protected]:~/directory $
我怎样才能改变bash的if语句,以便它不预先考虑git的分支名,如果它已经在$PS1
?
如果是Python的我只想做:
GIT_BRANCH = get_current_git_repo_name()
if GIT_BRANCH not in PS1: # or PS1.find(GIT_BRANCH) == -1
PS1 = GIT_BRANCH + PS1
在案件陈述中:s/of/in/ – 2011-04-13 11:19:55
这确实回答了问题。但是你是对的,它不能解决移动到不同目录的问题。但是因为我也在使用Python虚拟环境,所以还有另一个bash函数可以为PS1提供其他魔力,所以这对我来说非常合适。 – 2011-04-14 15:38:50