У меня есть эта маленькая изящная штука в моем .bashrc
:
has_gitbranch() {
if [ -e .git ]; then
GIT_BRANCH='$(__git_ps1 "%s")'
[ "$GIT_BRANCH" != 'master' ] && export PS1="$GIT_BRANCH$PS1"
fi
}
venv_cd () {
cd "$@" && has_gitbranch
}
alias cd="venv_cd"
(я сам не написал и не могу вспомнить, откуда взял)
Проблема в том, что если я вхожу в каталог, который является git-репо, это происходит:
reponamepeterbe@computername:~/directory $
Это нормально, но что произойдет, если я войду в этот каталог снова (например, cd .
), тогда это произойдет:
reponamereponamepeterbe@computername:~/directory $
И снова:
reponamereponamereponamepeterbe@computername:~/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