Creative Saplings

Cum se folosește comanda Echo pe Linux

octombrie 19, 2020
No Comments
  • Dave McKay

    @TheGurkha

  • 29 octombrie 2019, 8:00 EDT
Fatmawati Achmad Zaenuri /

echo este perfectă pentru a scrie text formatat în fereastra terminalului. Și nu trebuie să fie text static. Poate include variabile shell, nume de fișiere și directoare. De asemenea, puteți redirecționa ecoul pentru a crea fișiere text și fișiere jurnal. Urmați acest ghid simplu pentru a afla cum.

Echo repetă ceea ce îi spuneți să repete

Zeus a plăcut să părăsească muntele Olimp pentru a se însoți cu nimfe frumoase. Într-o călătorie, i-a spus unei nimfe de munte numită Echo să-și arate soția, Hera, dacă ea îl urma. Hera a venit în căutarea lui Zeus, iar Echo a făcut tot ce a putut pentru a-l ține pe Hera în conversație. În cele din urmă, Hera și-a pierdut cumpătul și l-a blestemat pe bietul Echo, astfel încât să repete doar ultimele cuvinte pe care le-a spus altcineva. Ceea ce i-a făcut Hera lui Zeus când l-a prins din urmă este o presupunere a oricui.

Și asta, cam, este echo mult în viață. Repetă ceea ce i sa spus să repete. Aceasta este o funcție simplă, dar vitală. Fără echo, de exemplu, nu vom putea obține rezultate vizibile din scripturile shell,

Publicitate

Deși nu suntem încărcați cu o multitudine de clopote și fluiere, există șanse mari ca echo să aibă niște capacități despre care nu știați sau pe care le-ați uitat.

ecou? echo!

Majoritatea sistemelor Linux oferă două versiuni ale echo. Shell-ul Bash are propriul său echo încorporat și există și o versiune executabilă binară a echo.

Putem vedea cele două versiuni diferite utilizând următoarele comenzi:

type echo
whereis echo

type ne spune dacă comanda pe care i-o transmitem ca argument este un shell integrat, un executabil binar, un alias sau o funcție. Ne raportează că echo este un shell shell.

Publicitate

De îndată ce a găsit un răspuns, nu mai caută alte meciuri. Deci, nu ne spune dacă există alte comenzi cu același nume prezente în sistem. Dar ne spune pe care o găsește mai întâi. Și acesta este cel care va fi utilizat în mod implicit atunci când lansăm comanda respectivă.

Comanda whereis caută executabilul binar, codul sursă și pagina de manual pentru comanda pe care i-o transmitem ca parametru din linia de comandă. Nu caută integrările shell deoarece nu au un executabil binar separat. Acestea fac parte integrantă din executabilul Bash.

Comanda whereis raportează că echo este un executabil binar aflat în directorul /bin.

Pentru a utiliza acea versiune a echo, ar trebui să o apelați în mod explicit, oferind calea către executabil pe linia de comandă:

/bin/echo --version
Publicitate

Încorporarea shell-ului nu știe ce --version argumentul liniei de comandă este, doar îl repetă în fereastra terminalului:

echo --version

Exemplele prezentate aici folosesc toate valorile implicite versiunea echo, în shell-ul Bash.

Scrierea textului la terminal

Pentru a scrie un șir simplu de text în fereastra terminalului , tastați echo și șirul pe care doriți să îl afișeze:

echo My name is Dave.

Textul se repetă pentru noi. Dar, pe măsură ce experimentați, veți descoperi în curând că lucrurile se pot complica puțin. Uită-te la acest exemplu:

echo My name is Dave and I"m a geek.
Publicitate

Fereastra terminalului afișează un semn > și stă acolo, așteptând. Ctrl + C vă va întoarce la promptul de comandă. Ce s-a întâmplat acolo?

Citatul unic sau apostroful din cuvântul „Sunt” confuz echo. Acesta a interpretat citatul unic ca începutul unei secțiuni citate de text. Deoarece nu a detectat nici un ghilimel de închidere, echo aștepta mai multe intrări. Se aștepta ca introducerea ulterioară să includă ghilimelul unic lipsă pe care îl aștepta.

Pentru a include un singur ghilimel într-un șir, cea mai simplă soluție este să înfășurați întregul șir între ghilimele duble:

echo "My name is Dave and I"m a geek."

Împachetarea textului între ghilimele duble este un bun sfat general. În scripturi, delimitează în mod curat parametrii pe care îi transmiteți echo. Acest lucru face ca citirea și depanarea scripturilor să fie mult mai ușoară.

Publicitate

Ce se întâmplă dacă doriți să includeți un caracter de ghilimelă dublă în șirul dvs. de text?Este ușor, pur și simplu puneți o bară inversă \ în fața ghilimelei duble (fără spațiu între ele).

echo "My name is Dave and I"m a \"geek.\""

Acest lucru înfășoară cuvântul „geek” între ghilimele duble. Vom vedea în scurt timp mai multe dintre aceste caractere care au scăpat înapoi.

Utilizarea variabilelor cu ecou

Până acum , am scris text predefinit în fereastra terminalului. Putem folosi variabile cu echo pentru a produce ieșiri mai dinamice și cu valori inserate pentru noi de către shell. poate defini o variabilă simplă cu această comandă:

my_name="Dave"

A fost creată o variabilă numită my_name. a atribuit valoarea textului „Dave”. Putem folosi numele variabilei în șirurile pe care le transmitem către echo, iar valoarea variabilei va fi scrisă în fereastra terminalului. Trebuie să puneți un semn dolar $ în fața numelui variabilei pentru a anunța echo că este o variabilă.

Publicitate

Există o avertizare. Dacă ați înfășurat șirul în ghilimele simple echo va trata totul literal. Pentru a afișa valoarea variabilei, și nu numele variabilei, folosiți ghilimele duble.

echo "My name is $my_name"
echo "My name is $my_name"

Oarecum corect, merită repetat:

  • Utilizarea ghilimelelor unice are ca rezultat ca textul să fie scris în fereastra terminalului în mod literal.
  • Utilizarea ghilimelelor duble duce la variabila interpretată – numită și expansiune variabilă – și valoarea este scrisă în fereastra terminalului.

LEGATE: Cum se lucrează cu variabile în Bash

Utilizarea comenzilor cu echo

Putem folosi o comandă cu echo și să încorporăm ieșirea sa în șirul care este scris în fereastra terminalului. Trebuie să folosim semnul dolar $ ca și cum comanda ar fi o variabilă și să înfășurăm întreaga comandă între paranteze.

Vom folosi comanda date . Un sfat este să folosiți comanda pe cont propriu înainte de a începe să o utilizați cu echo. În acest fel, dacă există ceva în neregulă cu sintaxa comenzii dvs., o identificați și o corectați înainte de ao include în comanda echo. Apoi, dacă comanda echo nu face ceea ce vă așteptați, veți ști că problema trebuie să fie cu sintaxa echo deoarece Am dovedit deja sintaxa comenzii.

Deci, încercați acest lucru în fereastra terminalului:

date +%D

Și, mulțumit că suntem obținând ceea ce așteptăm de la comanda date, îl vom integra într-o comandă echo:

echo "Today"s date is: $(date +%D)"
Publicitate

Rețineți că comanda se află în paranteze, iar semnul dolar $ este imediat înainte de prima paranteză.

Formatarea textului cu ecou

Opțiunea -e (activate backslash scapes) ne permite să folosim câteva caractere backslash-escaped pentru a schimba aspectul textului. Acestea sunt caracterele evadate înapoi pe care le putem folosi:

Să le folosim pe unele și să vedem ce fac.

echo -e "This is a long line of text\nsplit across three lines\nwith\ttabs\ton\tthe\tthird\tline"

Textul este împărțit într-o nouă linie în care am folosit caracterele \n și se introduce o filă unde am folosit caracterele \t.

echo -e "Here\vare\vvertical\vtabs"
Publicitate

La fel ca \n caractere de linie noi, o filă verticală \v mută textul pe linia de mai jos. Dar, spre deosebire de \n noile caractere de linie, fila verticală \v nu pornește noua linie la coloana zero. Acesta folosește coloana curentă.

Caracterele \b backspace mută cursorul înapoi cu un caracter. Dacă este mai mult text de scris pe terminal, textul respectiv va suprascrie caracterul anterior.

echo -e "123\b4"

„3” este suprascris de „ 4 ”.

Caracterul \r returnează transportul determină revenirea echo la începutul liniei curente și la scrieți orice text suplimentar din coloana zero.

echo -e "123\r456"

Caracterele „123” sunt suprascrise de caracterele „456”.

div id = „8945a4295d”> caracterul de alertă va produce un „bip” audibil. Utilizează sunetul de alertă implicit pentru tema dvs. actuală.

echo -e "Make a bleep\a"
Publicitate

-n (fără linie nouă) opțiunea nu este o secvență de tip backslash, dar afectează produsele cosmetice ale aspectului textului, așa că vom discuta aici. Împiedică adăugarea echo o linie nouă la sfârșitul textului. promptul de comandă apare imediat după textul care este scris în fereastra terminalului.

echo -n "no final newline"

Utilizarea ecoului cu fișiere și directoare

Puteți utiliza echo ca sortare a versiunii ls a omului sărac. Opțiunile dvs. sunt puține și sunt foarte mici atunci când utilizați echo astfel. Dacă aveți nevoie de orice fel de fidelitate sau control fin, este mai bine să utilizați ls și o gamă largă de opțiuni.

Această comandă listează toate fișierele și directoare din directorul curent:

echo *

Această comandă listează toate fișierele și directoarele din directorul curent al cărui nume începe cu „D”:

echo D*
Publicitate

Această comandă listează toate fișierele „.desktop” din directorul curent:

echo *.desktop

Da. Acest lucru nu se joacă după punctele forte ale lui echo. Utilizați ls.

Scrierea în fișiere cu ecou

Putem redirecționa ieșirea din echo și fie creați fișiere text, fie scrieți în fișiere text existente.

Dacă folosim operatorul de redirecționare >, fișierul este creat dacă nu există. Dacă fișierul există, rezultatul de la echo este adăugat la începutul fișierului, suprascriind orice conținut anterior.

Dacă folosim >> operator de redirecționare, fișierul este creat dacă nu există. Ieșirea din echo este adăugată la sfârșitul fișierului și nu suprascrie niciun conținut existent al fișierului.

echo "Creating a new file." > sample.txt
echo "Adding to the file." >> sample.txt
cat sample.txt
Publicitate

Un nou fișier este creat de prima comandă și se introduce text în el. A doua comandă adaugă o linie de text în partea de jos a fișierului. Comanda cat afișează conținutul fișierului în fereastra terminalului.

Și, desigur, putem include variabile pentru a adăuga informații utile în fișierul nostru. Dacă fișierul este un fișier jurnal, s-ar putea să dorim să i se adauge un timestamp. Putem face asta cu următoarea comandă.

Rețineți ghilimelele unice în jurul parametrilor pentru comanda date. Acestea împiedică interpretarea spațiului dintre parametri ca fiind sfârșitul listei de parametri. Se asigură că parametrii sunt trecuți corect către date corect.

echo "Logfile started: $(date +"%D %T")" > logfile.txt
cat logfile.txt
Publicitate

Fișierul nostru de jurnal este creat pentru noi și cat ne arată că amândouă au fost adăugate data și marca de timp.

RELATED : Ce sunt stdin, stdout și stderr pe Linux?

Acesta este Repertoriul echo

O comandă simplă, dar indispensabilă. Dacă nu ar exista, ar trebui să-l inventăm.

Shenanigans lui Zeus au făcut ceva bun, la urma urmei.

Dave McKay
Dave McKay a folosit computerele pentru prima dată când banda de hârtie perforată era la modă și de atunci programează. După peste 30 de ani în industria IT, el este acum un jurnalist tehnologic cu normă întreagă. În timpul carierei sale, a lucrat ca programator independent, manager al unei echipe internaționale de dezvoltare software, manager de proiect pentru servicii IT și, cel mai recent, ca responsabil cu protecția datelor. Dave este un evanghelist Linux și un avocat open source. Citește biografia completă „

Articles
Previous Post

Top 10 alimente bogate în cupru pe care ar trebui să le includeți în dieta dvs.

Next Post

Alegeți-vă gusturile

Lasă un răspuns Anulează răspunsul

Articole recente

  • Cele mai bune școli de fotografie din lume, 2020
  • Cetățenii suverani își duc filosofia anti-guvernamentală la drumuri
  • Ghid de costuri de reparații stuc
  • Muckrakers (Română)
  • Oncologie de precizie

Arhive

  • februarie 2021
  • ianuarie 2021
  • decembrie 2020
  • noiembrie 2020
  • octombrie 2020
  • septembrie 2020
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어
Proudly powered by WordPress | Theme: Fmi by Forrss.