GNU/Linux >> Linux Esercitazione >  >> Linux

Come usare il comando echo senza Newline

Il comando echo è un modo pratico per stampare qualsiasi cosa negli script della shell.

Per impostazione predefinita, aggiunge sempre un nuovo carattere di riga. Quindi, se esegui più comandi echo, ogni output viene visualizzato su una nuova riga.

Ma questo potrebbe essere scomodo in situazioni in cui è necessario stampare con il comando echo ma senza il newline.

Immagina di provare a stampare la serie di Fibonacci:1, 1, 2, 3, 5, 8, 13, 21, 34, 55

Puoi usare il -n flag del comando echo per stampare senza newline:

echo -n "Hello World"

Noterai che il prompt viene visualizzato nella stessa riga subito dopo Hello World now.

Diamo un'occhiata più approfondita.

Stampa comando echo senza nuova riga

Prendiamo un semplice ciclo for che stampa il contenuto di un array nello script bash e ne controlla l'output.

$ bash_array=(1 2 3 4)

$ for i in ${bash_array[@]}; do
    echo $i
done
1
2
3
4

Come puoi vedere, ogni volta che viene eseguito il comando echo, l'output viene visualizzato su una nuova riga. A volte è quello che vuoi, altre volte, vuoi che l'output continui sulla stessa riga senza iniziare sulla nuova riga.

Incontra la bandiera "-n"

L'implementazione bash del comando echo di solito aggiunge un "\n" (un carattere di escape per indicare una nuova riga) all'output. Il flag "-n" non aggiunge un "\n" all'output.

$ bash_array=(1 2 3 4 5 6 7 8)

$ for i in ${bash_array[@]}; do
    echo -n $i
done
12345678

Come puoi vedere, tutti i numeri sono ora visualizzati in un'unica riga. Ciò significa che ogni volta che il comando echo è stato eseguito, non è stato restituito a una nuova riga.

echo -n non ha funzionato. E adesso?

In alcuni casi, usando echo -n stampa anche il -n carattere invece di stampare il testo senza una nuova riga.

Ciò è possibile se esiste un'implementazione separata del comando echo da parte della shell che stai utilizzando.

Confuso? Alcune distribuzioni e shell possono avere la propria implementazione di alcuni comandi shell incorporati. echo è uno di questi comandi.

Ecco alcune cose che potresti provare.

Aggiungi il carattere shebang seguito da /bin/bash per assicurarti che lo script della shell utilizzi la shell bash.

#!/bin/bash

Se non funziona, puoi provare a usare il comando printf invece di echo.

Per impostazione predefinita, printf non aggiunge il carattere di nuova riga:

printf "Something without newline"

Devi fornire esplicitamente il carattere di nuova riga \n:

printf "Something with newline\n"

Il comando printf si comporta come il comando printf in C e puoi usarlo per stampare output formattati più complicati.

Il comando printf ha un comportamento molto più coerente. echo va bene per le cose semplici, ma consiglio di usare printf per le cose più complicate.

Spero che questo semplice tutorial ti aiuti a controllare il comportamento della nuova riga negli script bash.


Linux
  1. Come usare il comando Linux grep

  2. Come usare il comando cronologia in Linux

  3. Come usare il comando Su in Linux

  4. Come utilizzare il comando basename?

  5. Come utilizzare il comando dello schermo di Linux

COME USARE IL COMANDO TAIL

Come usare il comando head

Come usare il comando PS

Come usare il comando TOP

Come utilizzare il comando di arresto di Linux

Come usare grep in Linux