Il comando Echo di Linux: una spiegazione
Le distribuzioni Linux vi consentono di configurare e gestire autonomamente il sistema. Il comando della bash denominato Echo è uno dei più diffusi in assoluto. Viene utilizzato nei file e negli script Bash al fine di visualizzare un messaggio di stato in un file o sul vostro schermo. Vi spieghiamo 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 è estremamente facile e per questo assolutamente necessaria. Senza echo non visualizzereste, ad esempio, i risultati degli script della shell. La shell è l’interfaccia 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 esattamente e che aspetto ha? Qui di seguito riportiamo la sintassi del comando:
echo [option] [string]
Il funzionamento di base di echo è lo stesso in tutti i linguaggi di programmazione: digitate quello che volete, nella maggior parte dei casi sotto forma di una sequenza di caratteri, e quelle stesse informazioni vengono riprodotte esattamente sullo schermo.
L’interfaccia utente o l’interprete a riga di comando shell viene chiamata anche bash shell. Bash è la shell standard nelle distribuzioni Linux e la finestra di testo all’interno della quale digitate i vostri comandi. Il programma echo è una componente elementare di Ubuntu ed è preinstallato su tutti i sistemi operativi corrispondenti.
Come visualizzare testo e informazioni con il comando echo di Linux?
Nel nostro primo esempio vogliamo visualizzare 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 successivo vogliamo invece visualizzare una variabile. È sufficiente indicare il nome della variabile, ad esempio PWD (per Print Working Directory, o più semplicemente indicare la cartella di lavoro). Il comando appare così:
$ echo $PWD
/Users/Name/Desktop
Dopodiché c’è anche la possibilità di combinare variabili e testo, come nell’esempio seguente:
$ echo "Vi trovate nella cartella: $PWD"
Vi trovate nella cartella: /Users/Name/Desktop
Per visualizzare le informazioni 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 informazioni. Con printf ed echo invece le informazioni vengono soltanto visualizzate.
Quali caratteri di controllo esistono per echo?
Se avete capito il principio di funzionamento del comando Echo, potete ora passare ai caratteri di controllo che possono essere utilizzati in combinazione con il comando. Per caratteri di controllo si intendono quei caratteri che non vengono visualizzati sullo schermo ma parti di codice che servono a definire, per esempio, l’interruzione di riga.
Attenzione: echo comprende i caratteri di controllo soltanto se impostate l’opzione -e. Nell’esempio seguente deve essere visualizzato "\n", che solitamente serve a segnalare una nuova riga e quindi l’andare a capo.
$ echo "\n"
\n
Se come nell’esempio successivo dovete andare effettivamente a capo, allora aggiungete -e:
$ echo -e "\n"
Il comando Echo termina solitamente andando a capo. Per impedirlo potete aggiungere \c al termine del comando desiderato.
Di seguito una panoramica dei caratteri di controllo che avete a disposizione nella bash:
Caratteri Escape | Significato |
\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 | Tabulazione (orizzontale) |
\v | Tabulazione (verticale) |
\\ | Visualizzazione della barra rovesciata (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 visualizzato il testo, come i colori del font e dello sfondo. Per farlo dovete includere tutti i caratteri tra virgolette o scrivere direttamente i colori desiderati sotto forma di variabili, così da rendere leggibile la sequenza di caratteri. Un colore viene sempre introdotto da \033[. La prima opzione appare così (31m corrisponde al colore rosso):
$ echo -e "\033[31mQuesto testo è di colore rosso"
Per reimpostare il colore degli attributi successivi 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 comprendere:
red='\033[31m'
reset='\033[0m'
Dopodiché potete riutilizzare lo stesso colore semplicemente 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 caratteristiche 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 sottolineatura. Di seguito trovate i caratteri di controllo corrispondenti a ciascuna caratteristica:
Carattere di controllo | Risultato |
\033[0m | Reset di tutti gli attributi |
\033[1m | Grassetto |
\033[4m | Sottolineatura |
\033[5m | Evidenziato |
\033[7m | Visualizzazione inversa |
Se desiderate visualizzare un testo di colore rosso in grassetto, il codice è il seguente:
$ echo -e "\033[1;31mQuesto testo è di colore rosso e in grassetto."
Abbiamo riassunto per voi una panoramica di tutti i comandi Linux più importanti.