Com s'utilitza l'ordre Echo a Linux

El ressò L'ordre és perfecte per escriure text formatat a la finestra del terminal. I no ha de ser un text estàtic. Pot incloure variables de shell, noms de fitxers i directoris. També podeu redirigir eco per crear fitxers de text i fitxers de registre. Seguiu aquesta senzilla guia per esbrinar com fer-ho.

Echo repeteix el que li dieu que es repeteixi

A Zeus li agradava deixar el mont Olimp per maridar-se amb belles nimfes. En un viatge, va dir a una nimfa de la muntanya que es deia Echo que encapçalés la seva dona, Hera, si ella el seguia. Hera va venir a buscar Zeus i Echo va fer tot el possible per mantenir Hera en conversa. Finalment, Hera va perdre la calma i va maleir el pobre Eco, de manera que només repetia les darreres paraules que algú havia dit. El que Hera li va fer a Zeus quan el va agafar és una suposició de ningú.

I això, pràcticament, és així ressòMolt a la vida. Repeteix el que se li ha dit de repetir. Aquesta és una funció senzilla, però vital. Sense ressò , per exemple, no seríem capaços d'obtenir una sortida visible dels scripts de l'intèrpret d'ordres.

Tot i que no està carregat de multitud de campanes i xiulets, hi ha moltes possibilitats ressò té algunes funcions que desconeixíeu o que havíeu oblidat.

ressò? ressò!

La majoria dels sistemes Linux proporcionen dues versions de ressò. El shell Bash té el seu propi ressò integrat i hi ha una versió executable binària de ressò també.

Podem veure les dues versions diferents mitjançant les ordres següents:

escriu eco
on es fa ressò

El tipus Comanda ens indica si l'ordre que li passem com a argument és un shell integrat, un executable binari, un àlies o una funció. Ens ho informa ressò és un shell integrat.

Tan aviat com ha trobat una resposta, tipus deixa de buscar més partits. Per tant, no ens indica si hi ha altres ordres amb el mateix nom presents al sistema. Però sí que ens diu quina es troba primer. I aquest és el que s'utilitzarà de manera predeterminada quan publiquem aquesta ordre.

El on es L'ordre cerca l'executable binari, el codi font i la pàgina de man de l'ordre que li passem com a paràmetre de línia d'ordres. No busca incorporats de l'intèrpret d'ordres perquè no tenen un executable binari separat. Són una part integral de l’executable de Bash.

El on es ordre informa que ressò és un executable binari situat a / bin directori.

Per utilitzar aquesta versió de ressò hauríeu de trucar explícitament proporcionant el camí a l'executable a la línia d'ordres:

/ bin / echo --version

El shell integrat no sap què és el --versió L'argument de línia d'ordres és que només el repeteix a la finestra del terminal:

eco --versió

Els exemples mostrats aquí utilitzen la versió per defecte de ressò, a la closca de Bash.

S'està escrivint text al terminal

Per escriure una cadena de text simple a la finestra del terminal, escriviu ressò i la cadena que vulgueu que es mostri:

eco Em dic Dave.

El text es repeteix per a nosaltres. Però mentre experimenteu, aviat descobrireu que les coses es poden complicar una mica. Mireu aquest exemple:

eco Em dic Dave i sóc un friqui.

La finestra del terminal mostra un fitxer> signa i s’asseu allà esperant. Ctrl + C tornarà a l’indicador d’ordres. Què va passar allà?

La cita única o l’apòstrof de la paraula "estic" confós ressò. Va interpretar aquesta cita única com l'inici d'una secció de text citada. Com que no va detectar cap sol·licitud de tancament,ressò esperava més aportacions. S'esperava que les aportacions addicionals incloguessin la cita que faltava que esperava.

Per incloure una cometa única en una cadena, la solució més senzilla és embolicar tota la cadena entre cometes dobles:

eco "Em dic Dave i sóc un friqui".

Embolicar el text entre cometes dobles és un bon consell general. Als scripts, delimita netament els paràmetres als quals esteu passant ressò. Això facilita molt la lectura i la depuració de scripts.

Què passa si voleu incloure un caràcter de cometes dobles a la vostra cadena de text? Això és fàcil, només cal posar una barra invertida \ davant de la cometa doble (sense espai entre elles).

eco "Em dic Dave i sóc un \" friki \ ""

Això ens envolta la paraula "friki" entre cometes dobles. En veurem més barra invertida escapada personatges en breu.

Ús de variables amb eco

Fins ara hem estat escrivint text predefinit a la finestra del terminal. Podem utilitzar variables amb ressò per produir una sortida més dinàmica i amb valors inserits per a nosaltres per l'intèrpret d'ordres. Amb aquesta ordre podem definir una variable simple:

my_name = "Dave"

Una variable anomenada el meu nom s'ha creat. Se li ha assignat el valor del text "Dave". Podem utilitzar el nom de la variable a les cadenes a les que passem ressò , i el valor de la variable s'escriurà a la finestra del terminal. Heu de posar un signe de dòlar $ davant del nom de la variable a deixar ressò sap que és una variable.

Hi ha una advertència. Si heu embolicat la vostra cadena amb cometes simples ressò tractarà tot literalment. Tenir la variable valor es mostra, i no el fitxer nom de la variable, utilitzeu cometes dobles.

echo "El meu nom és $ my_name"
eco "El meu nom és $ my_name"

Una mica encertadament, val la pena repetir-ho:

  • Utilitzant solter les cometes fan que el text s’escrigui a la finestra del terminal en un fitxer literal moda.
  • Utilitzantdoble les cometes donen lloc a la interpretació de la variable —també anomenada expansió variable— i a valor s'escriu a la finestra del terminal.

RELACIONATS:Com treballar amb variables a Bash

Ús d’ordres amb eco

Podem utilitzar una ordre amb ressò i incorporeu la seva sortida a la cadena que s’escriu a la finestra del terminal. Hem d’utilitzar el signe del dòlar $ com si l’ordre fos una variable i emboliqués tota l’ordre entre parèntesis.

Utilitzarem l’ordre date. Un consell és utilitzar l’ordre tot sol abans de començar a utilitzar-la amb ressò. D’aquesta manera, si hi ha alguna cosa malament en la sintaxi de la vostra comanda, l’identifiqueu i la corregiu abans d’incloure-la a la ressò comandament. Llavors, si el ressò command no fa el que espereu, sabreu que el problema ha de ser amb ressò sintaxi perquè ja heu demostrat la sintaxi de l’ordre.

Per tant, proveu-ho a la finestra del terminal:

data +% D

I, satisfets d’obtenir el que esperem de l’ordre data, l’integrarem en un ressò comandament:

eco "La data d'avui és: $ (data +% D)"

Tingueu en compte que l'ordre es troba entre parèntesis i el signe dòlar $ és immediatament anterior al primer parèntesi.

Format del text amb ressò

El -e L'opció (habilitar escapes de barra invertida) ens permet utilitzar alguns caràcters de barra invertida per canviar el disseny del text. Aquests són els caràcters que s’escapen de la barra invertida que podem utilitzar:

  • \ a: Alerta (històricament coneguda com a BEL). Això genera el so d'alerta per defecte.
  • \ b: Escriu un personatge de retrocés.
  • \ c: Abandona qualsevol altra sortida.
  • \ e: Escriu un personatge d'escapament.
  • \ f: Escriu un caràcter de feed de formularis.
  • \ n: Escriu una nova línia.
  • \ r: Escriu una devolució de carro.
  • \ t: Escriu una pestanya horitzontal.
  • \ v: Escriu una pestanya vertical.
  • \\: Escriu un caràcter de barra invertida.

Utilitzem-ne alguns i vegem què fan.

echo -e "Aquesta és una llarga línia de text \ ndividida en tres línies \ namb \ ttabs \ ton \ tla \ tercera \ tline"

El text es divideix en una nova línia on hem utilitzat el fitxer \ n i s’insereix una pestanya on hem utilitzat \ t personatges.

echo -e "Aquí \ vare \ vvertical \ vtabs"

Com el \ n nous caràcters de línia, una pestanya vertical \ v mou el text a la línia següent. Però, a diferència del\ n nous caràcters de línia, el \ v la pestanya vertical no inicia la línia nova a la columna zero. Utilitza la columna actual.

El \ b els caràcters de retrocés fan moure el cursor cap enrere un caràcter. Si hi ha més text per escriure al terminal, aquest text sobreescriurà el caràcter anterior.

echo -e "123 \ b4"

El "3" està sobreescrit pel "4".

El \ r causa de retorn del carroressò per tornar a l'inici de la línia actual i per escriure qualsevol altre text des de la columna zero.

echo -e "123 \ r456"

Els caràcters "123" se sobreescriuen pels caràcters "456".

El \ a el caràcter d'alerta produirà un "pit" audible. Utilitza el so d'alerta predeterminat per al tema actual.

echo -e "Fer un pitit \ a"

El -n L'opció (sense línia nova) no és una seqüència d'escapada de barra invertida, però sí que afecta els cosmètics de la disposició del text, de manera que en parlarem aquí. Impedeix ressò d'afegir una línia nova al final del text. El símbol del sistema apareix directament després del text que s’escriu a la finestra del terminal.

echo -n "no hi ha cap línia nova final"

Ús de eco amb fitxers i directoris

Pots fer servir ressò com una mena de versió de l’home pobre ls. Les vostres opcions són escasses quan les feu servir ressò com això. Si necessiteu algun tipus de fidelitat o control multa, és millor que utilitzeu ls i la seva legió d'opcions.

Aquesta ordre llista tots els fitxers i directoris del directori actual:

ressò *

Aquesta ordre llista tots els fitxers i directoris del directori actual el nom del qual comença per “D”:

eco D *

Aquesta ordre llista tots els fitxers ".desktop" del directori actual:

echo * .desktop

Sí. Això no juga ressòPunts forts. Ús ls.

Escrivint a fitxers amb ressò

Podem redirigir la sortida des de ressò i ja sigui crear fitxers de text o escriure en fitxers de text existents.

Si fem servir el fitxer > operador de redirecció, el fitxer es crea si no existeix. Si el fitxer existeix, la sortida de ressò s'afegeix al començament del fitxer, sobreescrivint qualsevol contingut anterior.

Si fem servir el fitxer >> operador de redirecció, el fitxer es crea si no existeix. La sortida de ressò s’afegeix al final del fitxer i no sobreescriu cap contingut existent del fitxer.

echo "Creació d'un fitxer nou". > sample.txt
echo "Afegint al fitxer". >> sample.txt
cat sample.txt

La primera ordre crea un fitxer nou i s’hi insereix text. La segona ordre afegeix una línia de text a la part inferior del fitxer. El gat L'ordre mostra el contingut del fitxer a la finestra del terminal.

I, per descomptat, podem incloure variables per afegir informació útil al nostre fitxer. Si el fitxer és un fitxer de registre, és possible que vulguem afegir-hi una marca de temps. Ho podem fer amb la següent ordre.

Tingueu en compte les cometes simples al voltant dels paràmetres del fitxer data comandament. Eviten que l'espai entre els paràmetres s'interpreti com el final de la llista de paràmetres. Asseguren que es transmeten els paràmetresdata correctament.

echo "Fitxer de registre iniciat: $ (data + '% D% T')"> logfile.txt
cat logfile.txt

El nostre fitxer de registre està creat per a nosaltres i gat ens mostra que se li van afegir la marca de dades i la marca de temps.

RELACIONATS:Què són stdin, stdout i stderr a Linux?

Aquest és el repertori de eco

Una ordre senzilla, però indispensable. Si no existís, l’hauríem d’inventar.

Al cap i a la fi, els enganys de Zeus van fer un bé.


$config[zx-auto] not found$config[zx-overlay] not found