[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [Debian]: farbiger Prompt



On Sat, May 09, 1998 at 01:05:02PM +0200, Frank Berger wrote:
> Hallo !
> 
> Hat von Euch schon einmal jemand einen farbigen Prompt erstellt ?
> So ala
> export PS1='\[blau]\u@\h:\w\$\[weiß]'
> Ich habe in den Man-pages nix gefunden...
> Und am besten sollte es sowohl unter bash als auch unter xterm gehen.

Anstatt escape codes sollte man besser die Terminalfunktionen abfragen,
dann gibt es auch keine bösen Überraschungen falls mal Farbe nicht
unterstützt wird:

  set_prompt ()
  {
    local SAVE_CRS=`tput sc 2> /dev/null
    local RESET_CRS=`tput rc 2> /dev/null
    local CLOCKPOS=`tput cup 0 90 2> /dev/null
    local FOREG=`tput setf 6 2> /dev/null
    local ALT_FOREG=`tput setf 3 2> /dev/null
    local BACKG=`tput setb 0 2> /dev/null
    local NORMAL=`tput sgr0 2> /dev/null
    local BOLD=`tput bold 2> /dev/null
    PS1="\[${NORMAL}${SAVE_CRS}${CLOCKPOS}${FOREG}${BACKG}${BOLD} \@ ${RESET_CRS}${BOLD}${ALT_FOREG}\]\u\[${NORMAL}\]@\h:\w\$ "
  }
  set_prompt

Die Argumente von setf und setb sind natürlich die Farben. Die \[ \] machen
Bash schlau, welche Zeichen wirklich gedruckt werden, sonst kommt Bash mit
dem Zeilenumbruch völlig durcheinander.

Der Prompt gibt übrigens die Uhrzeit türkis in der rechten oberen Ecke
wieder (auf einem 100x37 Bildschirm zumindest. Sonst CLOCKPOS entsprechend
änder, 90 auf 70 runtersetzen), und gibt den usernamen gelb aus.

Es gibt natürlich noch viel trickreichere Sachen, man kann Perl Skripte
aufrufen, die den Prompt dynamisch verändern :)

Marcus

-- 
"Rhubarb is no Egyptian god."        Debian GNU/Linux        finger brinkmd@ 
Marcus Brinkmann                   http://www.debian.org    master.debian.org
Marcus.Brinkmann@ruhr-uni-bochum.de                        for public  PGP Key
http://homepage.ruhr-uni-bochum.de/Marcus.Brinkmann/       PGP Key ID 36E7CD09
------------------------------------------------
Um sich aus der Liste auszutragen schicken Sie
bitte eine E-Mail an majordomo@jfl.de die im Body
"unsubscribe debian-user-de <your_email_address>"
enthaelt.
Bei Problemen bitte eine Mail an: Jan.Otto@jfl.de
------------------------------------------------
Anzahl der eingetragenen Mitglieder:     449


Reply to: