Introduzione

Il comando echo è uno dei comandi più basilari e usati di frequente in Linux. Gli argomenti passati echo vengono stampati sull'output standard.

echo viene comunemente utilizzato negli script di shell per visualizzare un messaggio o generare i risultati di altri comandi.

Comando echo

echo è una shell integrata in Bash e nella maggior parte delle altre shell popolari come Zsh e Ksh. Il suo comportamento è leggermente diverso da shell a shell.

Esiste anche /usr/bin/echo un'utility autonoma , ma in genere la versione integrata della shell avrà la precedenza. Tratteremo la versione integrata di Bash di echo.

La sintassi per il comando echo è la seguente:

echo [-neE] [ARGUMENTS]
  • Quando viene utilizzata l' opzione -n, la nuova riga finale viene soppressa.
  • Se viene fornita l'opzione -e, verranno interpretati i seguenti caratteri con escape backslash:
  • \\ - Visualizza un carattere barra rovesciata.
  • \a - Avviso (BEL)
  • \b - Visualizza un carattere backspace.
  • \c - Sopprime qualsiasi ulteriore output
  • \e - Visualizza un carattere di escape.
  • \f - Visualizza un carattere di feed del modulo.
  • \n - Visualizza una nuova riga.
  • \r - Visualizza un ritorno a capo.
  • \t - Visualizza una scheda orizzontale.
  • \v - Visualizza una scheda verticale.
  • L'opzione -E disabilita l'interpretazione dei caratteri di escape. Questo è il valore predefinito.

Ci sono alcuni punti da considerare quando si utilizza il comando echo.

  • La shell sostituirà tutte le variabili, i caratteri jolly e i caratteri speciali prima di passare gli argomenti al comando echo.
  • Sebbene non sia necessario, è buona prassi di programmazione racchiudere gli argomenti passati echo tra virgolette doppie o singole.
  • Quando si usano virgolette singole, '' il valore letterale di ciascun carattere racchiuso tra virgolette verrà conservato. Variabili e comandi non verranno espansi.

Esempi del comando Echo

I seguenti esempi mostrano come usare il comando echo.

Per visualizzare una riga di testo sull'output standard:

echo Hello, World!
Hello, World!

Per stampare una doppia citazione, racchiuderla tra virgolette singole o sfuggirla al carattere barra rovesciata.

echo 'Hello "Noviello"'
echo "Hello \"Noviello\""
Hello "Noviello"

Per visualizzare una riga di testo contenente una virgoletta singola racchiuderla tra virgolette doppie o utilizzare la quotazione ANSI-C.

echo "I'm a Linux user."
echo $'I\'m a Linux user.'
I'm a Linux user.

Per visualizzare un messaggio contenente caratteri speciali utilizzare l'opzione -e per abilitare l'interpretazione dei caratteri di escape.

echo -e "Hello, Noviello.\n\t- Hello"
Hello, Noviello.
    - Hello

Il comando echo può essere utilizzato con caratteri di corrispondenza dei motivi, come i caratteri jolly. Ad esempio, il comando seguente restituirà i nomi di tutti i file .php nella directory corrente.

echo The PHP files are: *.php
The PHP files are: index.php contact.php functions.php

Per reindirizzare a un file invece di visualizzare l'output sullo schermo, è possibile utilizzare gli operatori >, >>.

echo -e 'Hello.\nNoviello' >> /tmp/file.txt

Se il file.txt non esiste, il comando lo creerà. Quando si utilizza > il file verrà sovrascritto, mentre >> verrà aggiunto l'output al file.

Utilizzare il comando cat per visualizzare il contenuto del file:

cat /tmp/file.txt
Hello.
Noviello

echo può anche visualizzare variabili. Nel seguente esempio, stamperemo il nome dell'utente attualmente connesso:

echo $USER
noviello

$USER è una variabile shell che contiene il tuo nome utente.

Per visualizzare dell'output di un comando echo usa l'espressione $(command). Il seguente comando visualizzerà la data corrente :

echo "The date is: $(date +%D)"
The date is: 01/13/19

Utilizzare le sequenze di escape ANSI per modificare i colori di foreground e di background o impostare proprietà di testo come trattino basso e grassetto.

echo -e "\033[1;37mWHITE"
echo -e "\033[0;30mBLACK"
echo -e "\033[0;34mBLUE"
echo -e "\033[0;32mGREEN"
echo -e "\033[0;36mCYAN"
echo -e "\033[0;31mRED"
echo -e "\033[0;35mPURPLE"
echo -e "\033[0;33mYELLOW"
echo -e "\033[1;30mGRAY"

Conclusione

Dovresti avere una buona comprensione di come funziona il comando echo.