GNU/Linux >> Linux Esercitazione >  >> Linux

Come fare eco a una nuova riga negli script di Bash Shell

Il comando echo aggiunge automaticamente una nuova riga alla fine. È fantastico.

Ma cosa succede se si desidera visualizzare solo una nuova riga vuota? O se vuoi produrre qualcosa che contiene una nuova riga?

La buona notizia è che echo ti consente di usare il carattere di nuova riga \n per stampare una nuova riga all'interno della stessa riga di output se usi il -e opzione:

echo -e "Name\nAddress\nPhone Number"

Se esegui il comando precedente, otterrai questo output:

Name
Address
Phone Number

È bello, vero? Diamo un'occhiata più dettagliata.

Una nuova riga è un termine che utilizziamo per specificare che la riga corrente è terminata e il testo continuerà dalla riga sotto quella corrente. Nella maggior parte dei sistemi simili a UNIX, \n viene utilizzato per specificare una nuova riga. Viene chiamato carattere di nuova riga.

Il comando echo, per impostazione predefinita, disabilita l'interpretazione di backslash escapes. Quindi, se provi a visualizzare una nuova riga usando la sequenza di escape '\n', noterai un problema.

$ echo Hello\nworld
Hellonworld

$ echo 'Hello\nworld'
Hello\nworld

Anche racchiudere il testo tra virgolette singole come una stringa letterale non funziona.

Non era un output previsto. Per stampare effettivamente una nuova riga, puoi usare il flag '-e' per dire al comando echo che vuoi abilitare l'interpretazione degli escape della barra rovesciata.

$ echo -e 'Hello\nworld'
Hello
world

Bello, è quello che stai cercando.

Consentitemi altri modi per visualizzare il carattere di nuova riga.

eco una variabile contenente una nuova riga

Puoi memorizzare una stringa in una variabile bash e poi farne eco usando il flag '-e'.

$ str="Hello\nworld"

$ echo -e $str
Hello
world

Usa il carattere '$' invece del flag -e

Il simbolo del dollaro, '$' è chiamato il carattere di "espansione" in bash. Questo è il carattere che ho usato nell'esempio precedente per fare riferimento al valore di una variabile nella shell.

Se osservi attentamente lo snippet di seguito, ti renderai conto che il carattere dell'espansione, in questo caso, agisce per mantenere un valore temporaneo.

$ echo Hello$'\n'world
Hello
world

Oppure puoi utilizzare l'intera stringa come 'variabile temporanea':

$ echo $'Hello\nworld'
Hello
world

Preferirei usare il -e bandiera, però.

eco il tuo eco per stampare qualcosa con una nuova riga

Quando fai eco a un pezzo di testo, il comando echo aggiungerà automaticamente una nuova riga (ed ecco come puoi impedirlo) alla fine del tuo testo.

Ciò significa che puoi concatenare più comandi echo insieme per creare una nuova riga.

$ echo Hello; echo world
Hello
world

Usa printf per stampare newline nella shell Bash

printf è un altro strumento da riga di comando che essenzialmente stampa il testo sul terminale, ma ti consente anche di formattare il testo.

L'utilizzo è molto semplice e simile all'eco ma un po' più affidabile e coerente.

$ printf 'Hello\nworld\n'
Hello
world

Come previsto, hai una nuova riga senza utilizzare alcun flag.

Conclusione

Personalmente, preferirei attenersi al flag -e o utilizzare il comando printf per visualizzare le nuove righe in output. Ti consiglio di fare lo stesso ma sentiti libero di sperimentare.


Linux
  1. Come fare eco a un botto!?

  2. Come cambiare Cron Shell (sh To Bash)?

  3. Parametri speciali di Bash spiegati con 4 script di shell di esempio

  4. Parametri posizionali di Bash spiegati con 2 script di shell di esempio

  5. Come inserire una nuova riga nello script della shell di Linux?

Come creare documenti con gli script Bash

Script di shell per principianti - Come scrivere script Bash in Linux

Come utilizzare il comando echo negli script Bash in Linux

Come installare Linux Bash Shell su Windows 10

Come utilizzare if-else negli script della shell?

Come leggere gli argomenti della riga di comando negli script della shell?