Sophie

Sophie

distrib > Mandriva > 9.1 > i586 > by-pkgid > f1098342ec4a2b28475e34123ce17201 > files > 92

howto-html-it-9.1-0.5mdk.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>Bash Prompt HOWTO: Caricare il Colori del Prompt Dinamicamente</TITLE>
<LINK HREF="Bash-Prompt-HOWTO-10.html" REL=next>
<LINK HREF="Bash-Prompt-HOWTO-8.html" REL=previous>
<LINK HREF="Bash-Prompt-HOWTO.html#toc9" REL=contents>
</HEAD>
<BODY>
<A HREF="Bash-Prompt-HOWTO-10.html">Avanti</A>
<A HREF="Bash-Prompt-HOWTO-8.html">Indietro</A>
<A HREF="Bash-Prompt-HOWTO.html#toc9">Indice</A>
<HR>
<H2><A NAME="s9">9. Caricare il Colori del Prompt Dinamicamente</A></H2>

<H2><A NAME="ss9.1">9.1 Un esempio che dimostra il concetto</A>
</H2>

<P>Questa &egrave; 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).
<P>
<BLOCKQUOTE><CODE>
<PRE>
#!/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]$ "
}
</PRE>
</CODE></BLOCKQUOTE>
<P>
<P>Usando il vostro editor preferito, salvate queso in un file chiamato
"hostloadcolour". Se avete il pacchetto Bashprompt installato, Questo
funzioner&agrave; come un tema. Se no, digitate <CODE>source
hostloadcolour</CODE> e poi <CODE>hostloadcolour</CODE>. 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&egrave; "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.
<P>
<P>
<HR>
<A HREF="Bash-Prompt-HOWTO-10.html">Avanti</A>
<A HREF="Bash-Prompt-HOWTO-8.html">Indietro</A>
<A HREF="Bash-Prompt-HOWTO.html#toc9">Indice</A>
</BODY>
</HTML>