Requisiti
Si desidera produrre testo colorato nei propri script di shell. L'hai già visto in vari punti (ad esempio quando si avviano i servizi all'avvio) e ti sei chiesto come si fa.
Il principio di base
Tutte le emulazioni di terminale comuni in Linux (ad esempio xterm, konsole, la console Linux, PuTTY) supportano alcuni caratteri di controllo che possono essere utilizzati per influenzare gli attributi del testo. È sufficiente emettere questi caratteri con echo
.
Come funziona in dettaglio
Tutte le sequenze di controllo vengono iniziate con Escape
[. Dopo di che viene un numero e poi una minuscola m
. Il carattere di escape ha il codice Asciicode 27. Per emettere questo carattere con echo
, è necessario utilizzare l'opzione -e
, quindi immettere la sequenza \033
:
echo -e "Now this becomes \033[31mRed\033[0m."
Ora questo diventa ROSSO.
Alcuni importanti caratteri di controllo
La tabella seguente fornisce una panoramica di alcune sequenze utili. Si noti che non tutte le emulazioni di terminale sono in grado di visualizzare correttamente tutti gli attributi. A volte, ad esempio, il grassetto viene visualizzato sostituendolo con una luminosità maggiore:
\033[0m | Azzeramento di tutti gli attributi |
\033[1m | In grassetto |
\033[4m | Sottolineatura |
\033[5m | Battito di ciglia |
\033[7m | Negativo |
\033[30m | Colore del testo Nero |
\033[31m | Colore del testo Rosso |
\033[32m | Colore del testo Verde |
\033[33m | Colore del testo Giallo |
\033[34m | Colore del testo blu |
\033[35m | Colore del testo Magenta |
\033[36m | Colore del testo Ciano |
\033[37m | Colore del testo Bianco |
\033[40m | Sfondo Nero |
\033[41m | Sfondo rosso |
\033[42m | Sfondo verde |
\033[43m | Sfondo giallo |
\033[44m | Sfondo blu |
\033[45m | Sfondo magenta |
\033[46m | Sfondo ciano |
\033[47m | Sfondo bianco |