La variable de env PS1 no funciona en mac

Tengo un script (no escrito por mí mismo) que muestra la twig git / svn en mi símbolo del sistema. ¿Alguien sabe por qué esto no funcionaría en mac? Funciona perfectamente en Linux.

Desde https://github.com/xumingming/dotfiles/blob/master/.ps1 :

# Display ps1 with colorful pwd and git status # Acording to Jimmyxu .bashrc # Modified by Ranmocy # -- if type -P tput &>/dev/null && tput setaf 1 &>/dev/null; then color_prompt=yes else color_prompt= fi __repo () { branch=$(type __git_ps1 &>/dev/null && __git_ps1 | sed -e "s/^ (//" -e "s/)$//") if [ "$branch" != "" ]; then vcs=git else branch=$(type -P hg &>/dev/null && hg branch 2>/dev/null) if [ "$branch" != "" ]; then vcs=hg elif [ -e .bzr ]; then vcs=bzr elif [ -e .svn ]; then vcs=svn else vcs= fi fi if [ "$vcs" != "" ]; then if [ "$branch" != "" ]; then repo=$vcs:$branch else repo=$vcs fi echo -n "($repo)" fi return 0 } if [ "$color_prompt" = yes ]; then # PS1='\[\e[01;32m\]\u@\h\[\e[00m\]:\[\e[01;34m\]\w\[\e[33;40m\]$(__repo)\[\e[00m\]\$ ' PS1='\[\e[01;32m\]\u\[\e[00m\]:\[\e[01;34m\]\W\[\e[33m\]$(__repo)\[\e[00m\]\$ ' else PS1='\u@\h:\w$(__repo)\$ ' fi unset color_prompt case "$TERM" in xterm*|rxvt*) PS1="\[\e]0;\W\a\]$PS1" ;; *) ;; esac 

Las instalaciones de Mac OS X de Git no tienen __git_ps1 incluido.

Utilizar:

 alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* \(.*\)/(\1)/'" 

como una sustitución.

La secuencia de commands que proporcionó no detecta los repositorys de git si el command __git_ps1 falla. Agregue esto a ~/.bash_profile :

 source /usr/local/git/contrib/completion/git-completion.bash source /usr/local/git/contrib/completion/git-prompt.sh 

Suponiendo que haya almacenado el file de script como ~/.ps1 , también agregue:

 source ~/.ps1 

  • Esta solución también permite completar tabs para git.
  • Las instalaciones de Mac OS X de git tienen __git_ps1 incluido, gracias sschuberth y cheapener por mencionar git-completion.bash.

En un nuevo Mac Yosemite usando git incorporado, utilicé esto:

 source /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash source /Library/Developer/CommandLineTools/usr/share/git-core/git-prompt.sh export PS1='\[\e]0;\u@\h: \w\a\]\[\e[32;1m\]\u@\h:\w \[\e[33;1m\]$(__git_ps1 "[%s] ")\[\e[32;1m\]\$ \[\e[0m\]' 

Nota: en El Capitan, tuve que cambiar la ruta de los scripts de git a /Applications/Xcode.app/Contents/Developer/usr/share/git-core y creo que debe tener XCode instalado para que esto funcione.

Si instaló git a través de macports (git-core), debe agregar lo siguiente a ~/.bash_profile :

 source /opt/local/etc/profile.d/bash_completion.sh source /opt/local/share/git-core/git-prompt.sh 

La location de git-prompt.sh parece haber cambiado algunas veces.