IT  UK - CD E DVD LINUX + IMBALLAGGIO + SPEDIZIONE = 0 (zero) EURO
clicca qui per tornare su www.tuttosulinux.com
- tutto su Linux e sul software libero -

inserisci qui le parole da cercare nel sito


powered by FreeFind

LINUX HOWTO IN ITALIANO
Avanti Indietro Indice

9. Caricare il Colori del Prompt Dinamicamente

9.1 Un esempio che dimostra il concetto

Questa è una dimostrazione del concetto piuttosto che un prompt attraente: cambiare i colori all'interno di un prompt dinamicamente. In questo esempio, il colore dell'hostname cambia in funzione del carico (come un avvertimento).

#!/bin/bash
#   "hostloadcolour" - 17 ottobre 98, Giles
#
#   Qui l'idea e` di cambiare il colore dell'hostname nel prompt, a
#   seconda del valore del carico.

# THRESHOLD_LOAD e` il valore del carico per un minuto (moltiplicato
# per cento) al quale volete che il prompt cambi da COLOUR_LOW a
# COLOUR_HIGH

THRESHOLD_LOAD=200
COLOUR_LOW='1;34'
          # blu chiaro
COLOUR_HIGH='1;31'
          # rosso chiaro

function prompt_command {
ONE=$(uptime | sed -e "s/.*load average: \(.*\...\), \(.*\...\), \(.*\...\)/\1/" -e "s/ //g")
#   A quanto pare, "scale" in bc non funziona con la moltiplicazione,
#   ma funziona con la divisionone.
ONEHUNDRED=$(echo -e "scale=0 \n $ONE/0.01 \nquit \n" | bc)
if [ $ONEHUNDRED -gt $THRESHOLD_LOAD ] 
then 
    HOST_COLOUR=$COLOUR_HIGH
        # rosso chiaro
else
    HOST_COLOUR=$COLOUR_LOW
        # blu chiaro
fi
}

function hostloadcolour {

PROMPT_COMMAND=prompt_command
PS1="[$(date +%H%M)][\u@\[\033[\$(echo -n \$HOST_COLOUR)m\]\h\[\033[0;37m\]:\w]$ "
}

Usando il vostro editor preferito, salvate queso in un file chiamato "hostloadcolour". Se avete il pacchetto Bashprompt installato, Questo funzionerà come un tema. Se no, digitate source hostloadcolour e poi hostloadcolour. In entrambi i modi, "prompt_command" diventa una funzione nel vostro ambiente. Se esaminate il codice, noterete che i colori ($COLOUR_HIGH e $COLOUR_LOW) sono impostati usanto solo un codice del colore parziale, cioè "1;34" invece di "\[\033[1;34m\]", che avrei preferito. Non sono stato in grado di farlo funzionare con il codice completo. Siete pregati di farmi sapere se doveste riuscirvi.


Avanti Indietro Indice
 

[ home | appunti | recensioni | links | chat | forum | contattaci | cerca nel web ]

Sito segnalato da Yahoo!

clicca qui per tornare su www.tuttosulinux.com
- tutto su Linux e sul software libero -
- © 2001- www.tuttosulinux.com tutti i diritti riservati - webmaster@tuttosulinux.com -