Bash - Podrasowany znak zachęty PS1

Dodane 12 września 2012 o 20:47:08 w kategorii ' Linux, Shell, Systemy operacyjne '

Standardowy znak zachęty systemu jest dość ubogi, co jak można przeczytać w pliku ~/.bashrc, ma sprawić, abyśmy się nie rozpraszali, a uwaga nasza była skierowana na wyniki poleceń a nie znak zachęty.

Trochę koloru możemy wprowadzić wprowadzając małą modyfikację w pliku ~/.bashrc:

 
sed -i -e 's/#force_color_prompt=yes/force_color_prompt=yes/' ~/.bashrc
. ~/.bashrc
 

Jeżeli jest to dla nas nadal zbyt mało, możemy stworzyć znak zachęty, który będzie wyświetlał nazwę gitowego brancha, w którym jesteśmy. W tym celu instalujemy:

 
sudo apt-get install bash-completion
 

Następnie tworzymy plik ~/.bash_lfsps1 z poniższą treścią:

 
#!/bin/bash
 
# Colors for PS1
RED="\[\033[0;31m\]"
GREEN="\[\033[0;32m\]"
ORANGE="\[\033[0;33m\]"
WHITE="\[\033[00m\]"
 
case $TERM in
  xterm*)
    BOLD=$WHITE ;;
  *)
    BOLD="\[\033[0;38m\]" ;;
esac
 
# Prompt                                                                                                                                                           
if [ $EUID -eq 0 ] ; then
  PS1="$BOLD\h:$RED\u | $BOLD\D{%c} $RED| \w$WHITE\n$BOLD\\$ $WHITE"
else
  # TODO
  if [ -d "$HOME/.rvm" ] ; then
    PS1="${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\] $WHITE| $BOLD\t "'| gemset: $(rvm env gemset name)''$((type __git_ps1 > /dev/null 2>&1) && (__git_ps1 " | branch: %s "))'"\n$BOLD\\$ $WHITE"
  else
    PS1="${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\] $WHITE| $BOLD\t "'$((type __git_ps1 > /dev/null 2>&1) && (__git_ps1 " | branch: %s "))'"\n$BOLD\\$ $WHITE"
  fi
fi
 
export PS1
 

Ładowanie pliku ze startem konsoli:

 
cat <<EOF >> ~/.bashrc
if [ -f ~/.bash_lfsps1 ]; then
    . ~/.bash_lfsps1
fi
EOF
. ~/.bashrc
 

Zrzut ekranu:

PS1
Rysunek 1. Podgląd znaku zachęty PS1. Źródło: opracowanie własne.