Pfadanzeige in der Shell

Christian Brabandt cblists at 256bit.org
Mit Nov 28 17:28:22 GMT 2007


Hi Sven!

On Wed, 28 Nov 2007, Sven wrote:

> Zeigt her eure Shells, da mach ich doch mal mit :-)

Ich auch ;)

,----
| function display_prompt(){
| BG=$?
| # sample colors can be seen by
| # for i in `seq 1 7 ; seq 30 48 ; seq 90 107` ; do 
| #     echo -e "$i \e[${i}mtest\e[0m" 
| #done
| # first we declare some colors
| BLACK="\[\033[0;30m\]"
| DARKGRAY="\[\033[1;30m\]"
| BLUE="\[\033[0;34m\]"
| DARKBLUE="\[\033[1;34m\]"                                      
| GREEN="\[\033[0;32m\]"                                               
| DARKGREEN="\[\033[1;32m\]"
| CYAN="\[\033[0;36m\]"
| DARKCYAN="\[\033[1;36m\]"
| RED="\[\033[0;31m\]"
| DARKRED="\[\033[1;31m\]"
| PURPLE="\[\033[0;35m\]"
| DARKPURPLE="\[\033[1;35m\]"
| BROWN="\[\033[0;33m\]"
| YELLOW="\[\033[1;33m\]"
| GRAY="\[\033[0;37m\]"
| WHITE="\[\033[1;37m\]"
| NOCOLOR="\[\033[0m\]"
| 
| 
| # Now define the colors dynamically
| case "$HOSTNAME" in
|     256bit*) CHOST="${YELLOW}" ;;
|     t41*)    CHOST="${DARKRED}" ;;
|     *)       CHOST="${DARKCYAN}" ;;
| esac
| 
| # error_management. If the previous 
| # command returned something <> 0 
| # we will show a red bg color
| if [ "$BG" -gt 0 ]; 
| then
|     DEFAULT="\[\033[0;41m\]"
| else
|     DEFAULT="${DARKPURPLE}"
| fi
| 
| 
| if [ $EUID -eq 0 ];
| then
|     CUSER="${DARKRED}"
|     PRMPT="#"
| else
|     CUSER="${DARKBLUE}"
|     PRMPT="\$"
| fi
| 
| # 1 Zeile
| PS1="${CUSER}\u${NOCOLOR}${DEFAULT}@${CHOST}\h${NOCOLOR}${DEFAULT}:${DARKGREEN}\w${DEFAULT}${PRMPT} ${NOCOLOR}" 
| }
`----

Setzt den Prompt für Bash in Abhängigkeit vom User und Maschine und
dem Return Code des letzten Commands. Aufruf:
,----
| ~$ display_prompt
| ~$ PROMPT_COMMAND=display_prompt
`----
das Setzen vom PROMPT_COMMAND ist nötig, damit jedes Mal der Return
Code neu ausgewertet wird.

Mit freundlichen Grüßen
Christian
-- 
"Hit any key to continue" is a lie.