Colorare bash: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
(primo inserimento)
(esteso: colorare gli script)
Riga 1: Riga 1:
==Personalizzare il prompt==
Dunque come sappiamo bash è un tipo, forse il più usato, di shell per linux. Spesso però c'è la necessità di amministrare più macchine, anche solo all'interno di una rete casalinga. Possiamo riconoscerle certamente dall'hostname, ma se vogliamo fare una cosa anche più carina oltre che utile, possiamo colorare il prompt. Per farlo basta editare il file ~/.bashrc. Al suo interno troveremo (se non le abbiamo cancellate in precedenza) delle righe più o meno cosi:
Dunque come sappiamo bash è un tipo, forse il più usato, di shell per linux. Spesso però c'è la necessità di amministrare più macchine, anche solo all'interno di una rete casalinga. Possiamo riconoscerle certamente dall'hostname, ma se vogliamo fare una cosa anche più carina oltre che utile, possiamo colorare il prompt. Per farlo basta editare il file ~/.bashrc. Al suo interno troveremo (se non le abbiamo cancellate in precedenza) delle righe più o meno cosi:


Riga 21: Riga 23:
</pre>
</pre>


Nell'esempio riportato sopra, che è una parte del mio bashrc, possiamo usare bash con la bandiera italiana. Ovviamente potete personalizzarlo come volte, cambiare caratteri, modificare colori e quant'altro.
Nell'esempio riportato sopra, che è una parte del mio bashrc, possiamo usare bash con la bandiera italiana. Ovviamente potete personalizzarlo come volete, cambiare caratteri, modificare colori e quant'altro.
 
==Usare i colori negli script==
 
Se si vogliono usare spesso i colori negli script bash è molto comodo definire delle variabili mnemoniche alle quali assegnare i codici di ogni colore. Questo può essere fatto ad esempio creando un file di nome '''/usr/local/bin/colors''', con il seguente contenuto:
 
<pre>
#!/bin/bash
export cane=gatto
export WHITE="\e[1;37m"
export LGRAY="\e[0;37m"
export GRAY="\e[1;30m"
export BLACK="\e[0;30m"
export RED="\e[0;31m"
export LRED="\e[1;31m"
export GREEN="\e[0;32m"
export LGREEN="\e[1;32m"
export BROWN="\e[0;33m"
export YELLOW="\e[1;33m"
export BLUE="\e[0;34m"
export LBLUE="\e[1;34m"
export PURPLE="\e[0;35m"
export PINK="\e[1;35m"
export CYAN="\e[0;36m"
export LCYAN="\e[1;36m"
export Z="\e[0m"
</pre>
 
In questo modo non ci resta che fare un source del file '''/usr/local/bin/colors''' ogni qual volta vogliamo usare i colori. Per fare il source basta inserire:
 
<pre>
. colors
</pre>
 
in un punto dello script. A questo punto potremo colorare facilmente il nostro output in questo modo:
 
<pre>
echo -e "$LGREEN *** $Z Attenzione: la dir $LGREEN documenti $Z sara' eliminata"
</pre>
 
che da come risultato ne terminale:
 
<font color="red"> *** </font>Attenzione: la dir <font color="green">documenti</font> sara' eliminata
 
;Nota 1: bisogna usare l'opzione '''-e''' con echo per fargli interpretare correttamente i caratteri di escape.
 
;Nota 2: la variabile $Z ripristina il colore di default del terminale.
 
{{warningbox| I colori sono un caratteristica non POSIX di bash, quindi non usateli se vole fare script portabili}}
 


----
----
Autore: Bedo
Autore iniziale: Bedo
 
Esteso da : [[Utente:TheNoise|~ The_Noise]]

Versione delle 13:23, 18 mag 2005

Personalizzare il prompt

Dunque come sappiamo bash è un tipo, forse il più usato, di shell per linux. Spesso però c'è la necessità di amministrare più macchine, anche solo all'interno di una rete casalinga. Possiamo riconoscerle certamente dall'hostname, ma se vogliamo fare una cosa anche più carina oltre che utile, possiamo colorare il prompt. Per farlo basta editare il file ~/.bashrc. Al suo interno troveremo (se non le abbiamo cancellate in precedenza) delle righe più o meno cosi:

# Coloriamo bash
if [ "$PS1" ]; then
export PS1="\[\033[1;32m\]\u\[\033[1;37m\]@\[\033[1;31m\]\h\[\033[1;0m\]:\w\$ "
fi

La sintassi è abbastanza semplice, esploriamo invece i vari comandi:

u = Il nostro nome utente
@ = il carattere @
[\033[1;32m\] = cambio il colore in verde
h = hostname
[\033[1;0m\] = colore di default
: = il carattere :
w = directory corrente
$ = $ se siamo user, # se siamo superuser

Nell'esempio riportato sopra, che è una parte del mio bashrc, possiamo usare bash con la bandiera italiana. Ovviamente potete personalizzarlo come volete, cambiare caratteri, modificare colori e quant'altro.

Usare i colori negli script

Se si vogliono usare spesso i colori negli script bash è molto comodo definire delle variabili mnemoniche alle quali assegnare i codici di ogni colore. Questo può essere fatto ad esempio creando un file di nome /usr/local/bin/colors, con il seguente contenuto:

#!/bin/bash
export cane=gatto
export WHITE="\e[1;37m"
export LGRAY="\e[0;37m"
export GRAY="\e[1;30m"
export BLACK="\e[0;30m"
export RED="\e[0;31m"
export LRED="\e[1;31m"
export GREEN="\e[0;32m"
export LGREEN="\e[1;32m"
export BROWN="\e[0;33m"
export YELLOW="\e[1;33m"
export BLUE="\e[0;34m"
export LBLUE="\e[1;34m"
export PURPLE="\e[0;35m"
export PINK="\e[1;35m"
export CYAN="\e[0;36m"
export LCYAN="\e[1;36m"
export Z="\e[0m"

In questo modo non ci resta che fare un source del file /usr/local/bin/colors ogni qual volta vogliamo usare i colori. Per fare il source basta inserire:

. colors

in un punto dello script. A questo punto potremo colorare facilmente il nostro output in questo modo:

echo -e "$LGREEN *** $Z Attenzione: la dir $LGREEN documenti $Z sara' eliminata"

che da come risultato ne terminale:

*** Attenzione: la dir documenti sara' eliminata

Nota 1
bisogna usare l'opzione -e con echo per fargli interpretare correttamente i caratteri di escape.
Nota 2
la variabile $Z ripristina il colore di default del terminale.
Warning.png ATTENZIONE
I colori sono un caratteristica non POSIX di bash, quindi non usateli se vole fare script portabili




Autore iniziale: Bedo

Esteso da : ~ The_Noise