pkg://doc-linux-it_2003.12-1.1_all.deb:3765386/
usr/
share/
doc/
HOWTO/
it-html/Bash-Prompt-HOWTO-9.html
info downloads
<!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 è 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à 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è "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>