Jak mogę użyć znaku strzałki w wierszu polecenia bash?

17

Jak mogę użyć tych czerwonych i zielonych znaków strzałek w oknie zachęty?

wprowadź opis zdjęcia tutaj

aktualizacja 1

To jest mój .bashrcplik

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

Chcę, aby ta strzałka była pokolorowana, jak wcześniej odpowiedział @dessert (zmień kolor na czerwony i zielony, aby uzyskać fałszywe i prawdziwe polecenie)

Afshin
źródło

Odpowiedzi:

25

Możesz użyć bash's PROMPT_COMMANDdo uruchomienia funkcji, która buduje twój monit, np .:

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
}

Dodaj ten kod do ~/.bashrcpliku i otwórz nowy terminal lub uruchom . ~/.bashrcw istniejącym, aby zmiany odniosły skutek. Zauważ, że dodałem zwykłe \$na końcu, to drukuje $normalnie i# jeśli jesteś rootem, uniemożliwiając w ten sposób uruchamianie poleceń jako root. falseKomenda jest dobrym sposobem, aby przetestować wariant kodu niezerowe wyjścia:

wynik

Jeśli do szybkiego themeing powinno się przyjrzeć tej zshpowłoki (pakiet zsh), którego słynny konfiguracja ramy Oh My zsh sam pochodzi z ponad sto motywów . Dodatkowo dostępnych jest wiele innych wtyczek, na przykład monit S Statek kosmiczny ZSH .

Spinki do mankietów

deser
źródło
1
Chociaż jest to świetne rozwiązanie typu zwykły bash , możesz rzucić okiem na zsh (jako zamiennik bash), a zwłaszcza podpowiedź statku kosmicznego
Richard de Wit