¡Casi allí! ¿Cómo puedo agregar otro color de estado de git al prompt de bash?

Esto funciona principalmente, pude agregar color a mi indicador de bash basado en el estado de git. El (origen / maestro) será verde si todo está comprometido, si no, sé que no me he comprometido. Sin embargo, estoy tratando de agregar colors adicionales, como el amarillo para 'cambios sin seguimiento' y el rojo si no he hecho nada.

Esto es lo que he improvisado hasta ahora de varias publicaciones en mi .bashrc

Versión Bash: 4.3.48 (1) – liberación

Sistema operativo: Linux Mint 18.2

## trim to two dir depth PROMPT_DIRTRIM=2 ## green user@hostname, then blue dirs, then colours for git branch COLOURGREEN="\033[01;32m" COLOURBLUE="\033[01;34m" COLOURPLAIN="\033[m" COLOURRED="\033[1;31m" COLOURYELLOW="\033[1;33m" ## This works fine on it's own, I see the (origin/master) in prompt parse_git_branch() { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/' } ## green works when all files committed but not other colours git_colour() { local gitstatus="$(git status 2> /dev/null)" if [[ ! $gitstatus =~ "working directory clean" ]]; then echo -e $COLOURRED elif [[ $gitstatus =~ "Untracked files:" ]]; then echo -e $COLOURYELLOW elif [[ $gitstatus =~ "nothing to commit" ]]; then echo -e $COLOURGREEN else echo -e $COLOURPLAIN fi } ## working export without colour on git # Example: user@hostname ~/.../dir3/dir4 (origin/master) # export PS1="\[\033[01;32m\]\u@\h\[\033[01;34m\] \w\[\033[m\]\$(parse_git_branch) $ " ## works only when green export PS1="\[\033[01;32m\]\u@\h\[\033[01;34m\] \w\[\$(git_colour)\]\$(parse_git_branch)\[\033[m\] $ " 

Solo un poco de ayuda con git_colour () o si he estropeado los códigos de color bash? Gracias

Al usar el estado de git – sugerencia de porcelana de Benjamin W y luego rehacer la statement if para poner el COLOURGREEN como el rest, ¡ahora tengo un aviso que cambia de color según el estado de git! Huzzah. Cambie git_colour () arriba a:

 git_colour() { local gitstatus="$(git status --porcelain 2> /dev/null)" if [[ $gitstatus =~ "??" ]]; then echo -e $COLOURRED elif [[ $gitstatus =~ "A" ]]; then echo -e $COLOURYELLOW else echo -e $COLOURGREEN fi }