Comment puis-je utiliser le signe de la flèche dans mon invite bash?

17

Comment puis-je utiliser ces flèches rouges et vertes dans l'invite bash?

entrez la description de l'image ici

mise à jour 1

C'est mon .bashrcdossier

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

Je veux que cette flèche soit colorée comme @dessert a répondu avant (tournez le rouge et le vert pour une commande fausse et vraie)

Afshin
la source

Réponses:

25

Vous pouvez utiliser bash's PROMPT_COMMANDpour exécuter une fonction qui construit votre invite, par exemple:

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
}

Ajoutez ce code à votre ~/.bashrcfichier et ouvrez un nouveau terminal ou exécutez-le . ~/.bashrcdans un existant pour que les modifications prennent effet. Notez que j'ai ajouté l'habituel \$à la fin, cela s'imprime $normalement et #si vous êtes root, vous empêchant ainsi d'exécuter des commandes en tant que root sans le savoir. La falsecommande est un bon moyen de tester la variante du code de sortie non nul:

résultat

Si vous êtes dans la thématique rapide, vous devriez certainement jeter un œil au zshshell (package zsh), dont le célèbre cadre de configuration Oh My Zsh comprend à lui seul plus de cent thèmes . De plus, de nombreux autres plugins sont disponibles, par exemple l'invite Spaceship ZSH .

Liens

dessert
la source
1
Bien qu'il s'agisse d'une excellente solution de plain-bash , vous pouvez jeter un œil à zsh (en remplacement de bash) et en particulier à l' invite Spaceship
Richard de Wit