¿Cómo puedo usar el signo de flecha en mi indicador de bash?

17

¿Cómo puedo usar estos signos de flecha roja y verde en el indicador de bash?

ingrese la descripción de la imagen aquí

actualización 1

Este es mi .bashrcarchivo

if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\[\033[00m\]\ 
[\033[01;34m\]→  \w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}→  \w\$ '
fi
unset color_prompt force_color_prompt

Quiero que esta flecha se coloree como @dessert respondió antes (se vuelve rojo y verde para el comando falso y verdadero)

Afshin
fuente

Respuestas:

25

Puede usar bash's PROMPT_COMMANDpara ejecutar una función que construya su solicitud, por ejemplo:

PROMPT_COMMAND=build_prompt

build_prompt() {
  EXIT=$?               # save exit code of last command
  red='\[\e[0;31m\]'    # colors
  green='\[\e[0;32m\]'
  cyan='\[\e[1;36m\]'
  reset='\[\e[0m\]'
  PS1='${debian_chroot:+($debian_chroot)}'  # begin prompt

  if [ $EXIT != 0 ]; then  # add arrow color dependent on exit code
    PS1+="$red"
  else
    PS1+="$green"
  fi

  PS1+="→$reset  $cyan\w$reset \\$ " # construct rest of prompt
}

Agregue este código a su ~/.bashrcarchivo y abra una nueva terminal o ejecute . ~/.bashrcuna existente para que los cambios surtan efecto. Tenga en cuenta que agregué lo habitual \$al final, esto se imprime $normalmente y #si es root, lo que le impide ejecutar comandos como root sin darse cuenta. El falsecomando es una buena forma de probar la variante del código de salida que no es cero:

resultado

Si te interesa el tema rápido, definitivamente deberías echar un vistazo al zshshell (paquete zsh), cuyo famoso marco de configuración Oh My Zsh solo viene con más de cien temas . Además, hay muchos otros complementos disponibles, por ejemplo, el indicador Spaceship ZSH .

Enlaces

postre
fuente
1
Si bien esta es una excelente solución simple , puedes echar un vistazo a zsh (como un reemplazo de bash) y especialmente al aviso de
Richard de Wit