Dit is meer een "proof of concept" dan een attractieve prompt: het dynamisch wijzigen van de kleuren in een prompt. In het voorbeeld wijzigt de kleur van de hostnaam afhankelijk van de load (als een waarschuwing).
#!/bin/bash # "hostloadcolour" - 17 October 98, door Giles # # De gedachte hier is de kleur van de hostnaam in de prompt te wijzigen, # afhankelijk van de grens van een load waarde. # THRESHOLD_LOAD is de waarde van de een minuut load (vermenigvuldigd # met honderd) waarop je wilt dat de prompt # wijzigt van COLOUR_LOW naar COLOUR_HIGH THRESHOLD_LOAD=200 COLOUR_LOW='1;34' # lichtblauw COLOUR_HIGH='1;31' # lichtrood function prompt_command { ONE=$(uptime | sed -e "s/.*load average: \(.*\...\), \(.*\...\), \(.*\...\)/\1/" -e "s/ //g") # Apparently, "scale" in bc doesn't apply to multiplication, but does # apply to division. ONEHUNDRED=$(echo -e "scale=0 \n $ONE/0.01 \nquit \n" | bc) if [ $ONEHUNDRED -gt $THRESHOLD_LOAD ] then HOST_COLOUR=$COLOUR_HIGH # Lichtrood else HOST_COLOUR=$COLOUR_LOW # Lichtblauw fi } function hostloadcolour { PROMPT_COMMAND=prompt_command PS1="[$(date +%H%M)][\u@\[\033[\$(echo -n \$HOST_COLOUR)m\]\h\[\033[0m\]:\w]$ " }
Sla dit met je favoriete editor op in een bestand met de naam
"hostloadcolour". Als je het Bashprompt package hebt geïnstalleerd,
zal dit als een theme werken.
Typ source hostloadcolour
en vervolgens hostloadcolour
als
dit niet zo is. In beide gevallen wordt "prompt_command" een functie in
je omgeving. Als je de code bestudeert, zul je opmerken dat de kleuren
($COLOUR_HIGH en $COLOUR_LOW) zijn ingesteld door slechts gebruik te maken
van een gedeeltelijke kleurcode, d.w.z. "1;34"
in plaats van "\[\033[1;34m\]", waar ik de voorkeur aan zou hebben gegeven.
Het lukte me niet om het met de complete code aan het werk te krijgen.
Laat het me alsjeblieft weten als je het voor elkaar krijgt.