<!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>