J'ai cette petite chose nifty dans mon .bashrc
:Changer PS1 que si une certaine sous-chaîne est pas déjà dans 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"
(je ne l'ai pas écrit moi-même et ne peut rappelez-vous où je l'ai eu)
Le problème est que si je rentre dans un répertoire qui est un git cela se produit:
[email protected]:~/directory $
C'est bien, mais ce qui se passe si je rentre à nouveau dans ce répertoire (par exemple cd .
), cela se produit:
[email protected]:~/directory $
Et encore:
[email protected]:~/directory $
Comment puis-je changer le bash instruction if afin qu'il ne préfixer pas le nom de la branche git si elle est déjà en $PS1
?
Si c'était Python, je voudrais juste faire ceci:
GIT_BRANCH = get_current_git_repo_name()
if GIT_BRANCH not in PS1: # or PS1.find(GIT_BRANCH) == -1
PS1 = GIT_BRANCH + PS1
Dans la déclaration de cas: s/of/in/ –
Cela répond à la question. Mais vous avez raison, cela ne résout pas le problème en passant à un répertoire différent. Cependant, puisque j'utilise aussi des environnements virtuels Python, il y a une autre fonction de bash qui fait de la magie à la PS1, donc ça fonctionne parfaitement pour moi. –