Come usare il comando Echo in Linux

Contenuti

Una finestra di terminale Linux su un desktop a tema Ubuntu.

il echo Il comando è perfetto per digitare testo formattato nella finestra del terminale. E non deve essere testo statico. Può includere variabili di shell, nomi di file e directory. Puoi anche reindirizzare l'eco per creare file di testo e file di registro. Segui questa semplice guida per scoprire come.

Echo ripete quello che gli dici di ripetere

A Zeus piaceva lasciare il Monte Olimpo per unirsi a belle ninfe. In viaggio, disse a una ninfa di montagna di nome Eco che perseguita sua moglie, Hera, se lei lo seguisse. Era è venuta a cercare Zeus, ed Eco ha fatto del suo meglio per mantenere Era in conversazione. Finire, Era perse le staffe e maledisse la povera Eco per ripetere solo le ultime parole che qualcun altro aveva detto.... Quello che Era ha fatto a Zeus quando lo ha raggiunto è da indovinare.

Lancio, in pratica, è echomolto nella vita. Ripeti cosa? è stato detto di ripetere. Questa è una funzione semplice, ma vitale. Privo di echo , non siamo riusciti a ottenere risultati visibili dagli script di shell, come esempio.

Anche se non è gravato da una moltitudine di campane e fischietti, è molto probabile che echo ha alcune capacità che non conoscevi o che avevi dimenticato.

eco? ¡eco!

La maggior parte dei sistemi Linux fornisce due versioni di echo. il Bash shell Ha il suo echo integrato in esso, ed esiste una versione eseguibile binaria di echo così come.

Possiamo vedere le due diverse versioni usando i seguenti comandi:

digita eco
dov'è l'eco?

il type il comando ci dice se il comando che abbiamo passato come il loro discussione è un guscio integrato, un eseguibile binario, un alias o un ruolo. Ci informa che echo è un guscio integrato.

Appena ho trovato una risposta, type smettila di cercare più corrispondenze. Perché, non ci dice se ci sono altri comandi con lo stesso nome presenti nel sistema. Ma ci dice quale trova per primo. Ed è quello che verrà utilizzato per impostazione predefinita quando emetteremo quel comando.

il whereis il comando trova l'eseguibile binario, il codice sorgente e la pagina di manuale del comando che ti passiamo come riga di comando parametro. Non cerca elementi della shell interna perché non hanno un eseguibile binario separato. Sono parte integrante dell'eseguibile Bash.

il whereis il comando riporta che echo è un eseguibile binario che si trova in /bin directory.

Per usare quella versione di echo dovresti chiamarlo esplicitamente fornendo il percorso dell'eseguibile sulla riga di comando:

/bin/echo --version

La shell integrata non sa cosa --version L'argomento della riga di comando è, ripetilo nella finestra del terminale:

echo --version

Tutti gli esempi mostrati qui utilizzano la versione predefinita di echo, nella shell bash.

Scrivi testo nel terminale

Per scrivere una semplice stringa di testo nella finestra del terminale, scriba echo e la stringa che vuoi visualizzare:

echo Mi chiamo Dave.

Il testo ci viene ripetuto. Ma come sperimenti, scoprirai presto che le cose possono diventare un po' più complicate. Guarda questo esempio:

echo Mi chiamo Dave e sono un geek.

La finestra del terminale visualizza a > firma e siediti lì, in attesa. Ctrl + C lo restituirà al prompt dei comandi. Cosa è successo la?

La virgoletta singola o l'apostrofo della parola “La virgoletta singola o l'apostrofo della parola” La virgoletta singola o l'apostrofo della parola echo. Interpretato quella singola citazione come l'inizio di una sezione di testo tra virgolette. Perché non ha rilevato una singola citazione di chiusura, echo aspettavo maggiori informazioni. Mi aspettavo che la voce aggiuntiva includesse la citazione singola mancante che mi aspettavo.

Per includere un singolo apice in una stringa, la risposta più semplice è racchiudere l'intera stringa tra virgolette doppie:

eco "Mi chiamo Dave e sono un geek."

Mettere il testo tra virgolette è un buon consiglio generale. Negli script, delimita chiaramente i parametri a cui stai passando echo. Questo rende molto più semplice la lettura e il debug degli script.

Cosa succede se si desidera includere un carattere di virgolette doppie nella stringa di testo?? Questo è facile, basta mettere una barra rovesciata davanti alle doppie virgolette (nessuno spazio tra di loro).

eco "Mi chiamo Dave e sono un "tipo strano.""

La virgoletta singola o l'apostrofo della parola “La virgoletta singola o l'apostrofo della parola” La virgoletta singola o l'apostrofo della parola. Vedremo più di questi barra rovesciata sfuggita personaggi in breve.

Usa variabili con echo

Fino ad ora, abbiamo scritto del testo predefinito nella finestra del terminale. Possiamo usare variabili con echo per produrre un output più dinamico e con valori inseriti al suo interno dalla shell. Possiamo impostare una semplice variabile con questo comando:

mio_nome="dave"

Una variabile chiamata my_name È stato creato. La virgoletta singola o l'apostrofo della parola “dave”. Possiamo usare il nome della variabile nelle stringhe a cui passiamo echo , e il valore della variabile verrà scritto nella finestra del terminale. Devi mettere il simbolo del dollaro $ davanti al nome della variabile da lasciare echo So che è una variabile.

C'è un avvertimento. Se hai avvolto la tua stringa tra virgolette singole echo tratterà tutto letteralmente. Avere la variabile valore mostrato, e non lui Nome della variabile, usa le virgolette doppie.

echo 'Mi chiamo $mio_nome'
eco "Il mio nome è $my_name"

Giustamente, è importante ripeterlo:

  • Usando separare le virgolette fanno sì che il testo venga digitato nella finestra del terminale in a letterale Moda.
  • Usando Doppio le virgolette risultano nell'interpretazione della variabile, chiamato anche espansione variabile, e il valore è scritto nella finestra del terminale.

IMPARENTATO: Come lavorare con le variabili in Bash

Usa i comandi con echo

Possiamo usare un comando con echo e incorporare il suo output nella stringa che è scritta nella finestra del terminale. Dobbiamo usare il simbolo del dollaro $ come se il comando fosse una variabile, e racchiudere l'intero comando tra parentesi.

Utilizzeremo il comando data. Un consiglio è usare il comando da solo prima di iniziare a usarlo con echo. Quel modo, se c'è qualche problema con la sintassi del comando, lo identifica e lo corregge prima di incorporarlo nel echo comando. Quindi, se lui echo il comando non fa quello che ti aspetti, Saprai che il problema deve essere con il echo sintassi perché hai già testato la sintassi del comando.

Quindi, prova questo nella finestra del terminale:

data +%D

E, soddisfatti che stiamo ottenendo ciò che ci aspettiamo dal comando date, lo integreremo in a echo comando:

eco "La data di oggi è: $(data +%D)"

Nota che il comando è tra parentesi e il simbolo del dollaro $ è immediatamente prima della prima parentesi.

Echo formattazione del testo

il -e L'opzione (abilita il backslash escape) ci consente di utilizzare alcuni caratteri di escape con barra rovesciata per modificare il layout del testo. Questi sono i caratteri di escape della barra rovesciata che possiamo usare:

  • un: Mettere in guardia (storicamente conosciuto come BEL). Questo genera il suono di avviso predefinito.
  • B: Scrivi un carattere di backspace.
  • C: Rinuncia a qualsiasi altra uscita.
  • me: Scrivi un carattere di escape.
  • F: Scrivi un carattere per il feed di pagina.
  • Nord: Scrivi una nuova riga.
  • R: Scrivi un ritorno a capo.
  • T: Scrivi una tabulazione orizzontale.
  • v: Scrivi una tabulazione verticale.
  • : Digita un carattere barra rovesciata.

Usiamone qualcuna e vediamo cosa fanno.

eco -e "Questa è una lunga riga di testo suddivisa su tre righe con tabstontthetterza riga"

Il testo è diviso in una nuova riga dove abbiamo usato il n caratteri e viene inserita una scheda dove abbiamo usato il t caratteri.

eco -e "Quivarevverticalvtabs"

Come la n caratteri di nuova riga, una flangia verticale v sposta il testo nella riga inferiore. Ma, a differenza di n caratteri di nuova riga, il v la scheda verticale non inizia una nuova riga alla colonna zero. Usa colonna corrente.

il b I caratteri di backspace spostano il cursore indietro di un carattere. Se c'è più testo da scrivere nel terminale, quel testo sovrascriverà il carattere precedente.

eco -e "123b4"

Il “3” La virgoletta singola o l'apostrofo della parola “4”.

il r Cause del carattere di ritorno a capo echo per tornare all'inizio della riga corrente e digitare qualsiasi testo aggiuntivo dalla colonna zero.

eco -e "123r456"

La virgoletta singola o l'apostrofo della parola “123” La virgoletta singola o l'apostrofo della parola “456”.

il a La virgoletta singola o l'apostrofo della parola “La virgoletta singola o l'apostrofo della parola” La virgoletta singola o l'apostrofo della parola. Usa il suono di avviso predefinito per il tuo tema attuale.

eco -e "Fai un bip"

il -n L'opzione (nessuna nuova linea) non una sequenza di escape con barra rovesciata, ma influisce sull'aspetto del layout del testo, quindi ne discuteremo qui. Prevenire echo dall'aggiunta di una nuova riga alla fine del testo. Il prompt dei comandi viene visualizzato direttamente dopo il testo digitato nella finestra del terminale.

echo -n "nessuna nuova riga finale"

Usa echo con file e directory

Puoi usare echo come una specie di versione povera di ls. Le tue opzioni sono poche e lontane tra loro quando usi echo come questo. Se hai bisogno di un qualche tipo di fedeltà o controllo preciso, è meglio che usi ls e la tua legione di opzioni.

Questo comando elenca tutti i file e le directory nella directory corrente:

eco *

La virgoletta singola o l'apostrofo della parola “D”:

eco D*

La virgoletta singola o l'apostrofo della parola “.La virgoletta singola o l'apostrofo della parola” La virgoletta singola o l'apostrofo della parola:

echo *.desktop

sì. Questo non sta giocando echopunti di forza. Utilizzo ls.

Scrivi su file con echo

Possiamo reindirizzare l'output di echo e creare file di testo o scrivere su file di testo esistenti.

Se usiamo il > operatore di reindirizzamento, il file viene creato se non esiste. Se il file esiste, l'uscita di echo viene aggiunto all'inizio del file, sovrascrivendo qualsiasi contenuto precedente.

Se usiamo il >> operatore di reindirizzamento, il file viene creato se non esiste. L'uscita di echo viene aggiunto alla fine del file e non sovrascrive alcun contenuto esistente del file.

eco "Creazione di un nuovo file." > campione.txt
eco "Aggiunta al file." >> campione.txt
cat sample.txt

Il primo comando crea un nuovo file e vi inserisce del testo. Il secondo comando aggiunge una riga di testo alla fine del file. il cat Il comando visualizza il contenuto del file nella finestra del terminale.

E, Certo, possiamo includere variabili per aggiungere informazioni utili al nostro file. Se il file è un file di registro, potremmo voler aggiungere un timestamp. Possiamo farlo con il seguente comando.

Nota le singole virgolette attorno ai parametri per il date comando. Impediscono che lo spazio tra i parametri venga interpretato come la fine dell'elenco dei parametri. Assicurano che i parametri vengano passati a date correttamente.

eco "File di registro avviato: $(data +'%D %T')" > logfile.txt
gatto logfile.txt

Il nostro file di registro è stato creato per noi e cat ci mostra che sia il timbro della data che il timestamp sono stati aggiunti ad esso.

IMPARENTATO: Cosa sono gli standard, stdout e stderr in Linux?

Questo è il repertorio di eco

Un semplice comando, ma indispensabile. Se non esisto, bisognerebbe inventarlo.

Le buffonate di Zeus hanno fatto qualcosa di giusto, Dopotutto.

impostaTimeout(funzione(){
!funzione(F,B,e,v,n,T,S)
{Se(f.fbq)Restituzione;n=f.fbq=funzione(){n.callMethod?
n.callMethod.apply(n,argomenti):n.queue.push(argomenti)};
Se(!f._fbq)f._fbq = n;n.push=n;n.loaded=!0;n.version='2.0′;
n.coda=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(T,S) } (window, documento,'copione',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('dentro', '335401813750447');
fbq('traccia', 'Visualizzazione della pagina');
},3000);

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.