Como posso usar o sinal de seta no meu prompt do bash?

17

Como posso usar esses sinais de seta vermelha e verde no prompt do bash?

insira a descrição da imagem aqui

atualização 1

Este é o meu .bashrcarquivo

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

Quero que esta seta seja colorida como a @dessert respondeu antes (fique vermelho e verde para o comando falso e verdadeiro)

Afshin
fonte

Respostas:

25

Você pode usar bash's' PROMPT_COMMANDpara executar uma função que cria seu prompt, por exemplo:

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
}

Adicione esse código ao seu ~/.bashrcarquivo e abra um novo terminal ou execute . ~/.bashrcum existente para que as alterações entrem em vigor. Observe que eu adicionei o habitual \$no final, isso é impresso $normalmente e #se você é root, impedindo que você execute comandos como root sem querer. O falsecomando é uma boa maneira de testar a variante do código de saída diferente de zero:

resultado

Se você gosta de temas rápidos, definitivamente deve dar uma olhada no zshshell (pacote zsh), cuja famosa estrutura de configuração Oh My Zsh vem com mais de cem temas . Além disso, existem muitos outros plugins disponíveis, por exemplo, o prompt pSpace Spaceship ZSH .

Ligações

sobremesa
fonte
1
Embora esta seja uma ótima solução para o básico , você pode dar uma olhada no zsh (como um substituto do bash) e especialmente no prompt
Richard de Wit