我在得到這個漂亮的小東西我.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