Le di­stri­bu­zio­ni Linux vi con­sen­to­no di con­fi­gu­ra­re e gestire au­to­no­ma­men­te il sistema. Il comando della bash de­no­mi­na­to Echo è uno dei più diffusi in assoluto. Viene uti­liz­za­to nei file e negli script Bash al fine di vi­sua­liz­za­re un messaggio di stato in un file o sul vostro schermo. Vi spie­ghia­mo come funziona il comando Echo di Linux e come fare per impostare i colori per il font e per lo sfondo.

Che cos’è il comando Echo e come funziona?

Il comando Echo di Linux ripete quello che lo si incarica di ripetere. La sua funzione è estre­ma­men­te facile e per questo as­so­lu­ta­men­te ne­ces­sa­ria. Senza echo non vi­sua­liz­ze­re­ste, ad esempio, i risultati degli script della shell. La shell è l’in­ter­fac­cia utente nella quale potete digitare svariati comandi, come, ad esempio, i comandi Linux Tail, Head, Cat o lo stesso comando Echo.

Ma come funziona il comando Echo esat­ta­men­te e che aspetto ha? Qui di seguito ri­por­tia­mo la sintassi del comando:

echo [option] [string]

Il fun­zio­na­men­to di base di echo è lo stesso in tutti i linguaggi di pro­gram­ma­zio­ne: digitate quello che volete, nella maggior parte dei casi sotto forma di una sequenza di caratteri, e quelle stesse in­for­ma­zio­ni vengono ri­pro­dot­te esat­ta­men­te sullo schermo.

N.B.

L’in­ter­fac­cia utente o l’in­ter­pre­te a riga di comando shell viene chiamata anche bash shell. Bash è la shell standard nelle di­stri­bu­zio­ni Linux e la finestra di testo all’interno della quale digitate i vostri comandi. Il programma echo è una com­po­nen­te ele­men­ta­re di Ubuntu ed è pre­in­stal­la­to su tutti i sistemi operativi cor­ri­spon­den­ti.

Come vi­sua­liz­za­re testo e in­for­ma­zio­ni con il comando echo di Linux?

Nel nostro primo esempio vogliamo vi­sua­liz­za­re un testo e il contenuto di alcune variabili nella bash. Per scrivere il testo “Questo è un esempio”, digitate il seguente codice nel terminale:

$ echo Questo è un esempio
Questo è un esempio

Nel passaggio suc­ces­si­vo vogliamo invece vi­sua­liz­za­re una variabile. È suf­fi­cien­te indicare il nome della variabile, ad esempio PWD (per Print Working Directory, o più sem­pli­ce­men­te indicare la cartella di lavoro). Il comando appare così:

$ echo $PWD 
/Users/Name/Desktop

Dopodiché c’è anche la pos­si­bi­li­tà di combinare variabili e testo, come nell’esempio seguente:

$ echo "Vi trovate nella cartella: $PWD" 
Vi trovate nella cartella: /Users/Name/Desktop
N.B.

Per vi­sua­liz­za­re le in­for­ma­zio­ni non c’è soltanto il comando della bash echo, ma anche printf e tput. Tra questi tput è uno strumento più complesso in quanto può essere usato per resettare le in­for­ma­zio­ni. Con printf ed echo invece le in­for­ma­zio­ni vengono soltanto vi­sua­liz­za­te.

Quali caratteri di controllo esistono per echo?

Se avete capito il principio di fun­zio­na­men­to del comando Echo, potete ora passare ai caratteri di controllo che possono essere uti­liz­za­ti in com­bi­na­zio­ne con il comando. Per caratteri di controllo si intendono quei caratteri che non vengono vi­sua­liz­za­ti sullo schermo ma parti di codice che servono a definire, per esempio, l’in­ter­ru­zio­ne di riga.

At­ten­zio­ne: echo comprende i caratteri di controllo soltanto se impostate l’opzione -e. Nell’esempio seguente deve essere vi­sua­liz­za­to "\n", che so­li­ta­men­te serve a segnalare una nuova riga e quindi l’andare a capo.

$ echo "\n" 
\n

Se come nell’esempio suc­ces­si­vo dovete andare ef­fet­ti­va­men­te a capo, allora ag­giun­ge­te -e:

$ echo -e "\n"
N.B.

Il comando Echo termina so­li­ta­men­te andando a capo. Per impedirlo potete ag­giun­ge­re \c al termine del comando de­si­de­ra­to.

Di seguito una pa­no­ra­mi­ca dei caratteri di controllo che avete a di­spo­si­zio­ne nella bash:

Caratteri Escape Si­gni­fi­ca­to
\a Tono di allarme
\b Indietro di un carattere
\c Impedire l’andare a capo
\f Indietro
\n Andare a capo
\r Tornare all’inizio della riga
\t Ta­bu­la­zio­ne (oriz­zon­ta­le)
\v Ta­bu­la­zio­ne (verticale)
\\ Vi­sua­liz­za­zio­ne della barra ro­ve­scia­ta (backlash)
\0nnn Caratteri ASCII in formato ottale (solo sh e ksk)
\nnn Caratteri ACSII in formato ottale (solo bash)

Come definire i colori per font e sfondo con il comando echo?

Con il comando Echo potete anche stabilire alcuni attributi di come deve essere vi­sua­liz­za­to il testo, come i colori del font e dello sfondo. Per farlo dovete includere tutti i caratteri tra vir­go­let­te o scrivere di­ret­ta­men­te i colori de­si­de­ra­ti sotto forma di variabili, così da rendere leggibile la sequenza di caratteri. Un colore viene sempre in­tro­dot­to da \033[. La prima opzione appare così (31m cor­ri­spon­de al colore rosso):

$ echo -e "\033[31mQuesto testo è di colore rosso"

Per reim­po­sta­re il colore degli attributi suc­ces­si­vi digitate la seguente stringa di caratteri:

$ echo -e "\033[0m"

Definendo invece i colori nel vostro script bash sotto forma di variabili, diventa tutto più facile da com­pren­de­re:

red='\033[31m'
reset='\033[0m'

Dopodiché potete riu­ti­liz­za­re lo stesso colore sem­pli­ce­men­te con il comando Echo:

$ echo -e "${red}Questo testo è di colore rosso.${reset}E ora il testo è di nuovo del colore standard."

Nella seguente tabella trovate i caratteri escape per diversi colori, sia per il font che per lo sfondo.

Carattere di controllo Risultato
\033[30m Font nero
\033[31m Font rosso
\033[32m Font verde
\033[33m Font giallo
\033[34m Font blu
\033[35m Font magenta
\033[36m Font turchese
\033[37m Font 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 turchese
\033[47m Sfondo grigio

Come impostare le ca­rat­te­ri­sti­che testuali con il comando echo?

Oltre ai colori di font e sfondo, con il comando Echo potete impostare anche alcuni attributi testuali come il grassetto o la sot­to­li­nea­tu­ra. Di seguito trovate i caratteri di controllo cor­ri­spon­den­ti a ciascuna ca­rat­te­ri­sti­ca:

Carattere di controllo Risultato
\033[0m Reset di tutti gli attributi
\033[1m Grassetto
\033[4m Sot­to­li­nea­tu­ra
\033[5m Evi­den­zia­to
\033[7m Vi­sua­liz­za­zio­ne inversa

Se de­si­de­ra­te vi­sua­liz­za­re un testo di colore rosso in grassetto, il codice è il seguente:

$ echo -e "\033[1;31mQuesto testo è di colore rosso e in grassetto."
Consiglio

Abbiamo riassunto per voi una pa­no­ra­mi­ca di tutti i comandi Linux più im­por­tan­ti.

Vai al menu prin­ci­pa­le