Paano Magamit ang Echo Command sa Linux

Ang echo Ang utos ay perpekto para sa pagsusulat ng na-format na teksto sa window ng terminal. At hindi ito kailangang maging static na teksto. Maaari itong magsama ng mga variable ng shell, mga filename, at direktoryo. Maaari mo ring i-redirect ang echo upang lumikha ng mga text file at mag-log file. Sundin ang simpleng gabay na ito upang malaman kung paano.

Umuulit ang Echo Kung Ano ang Sasabihin Nito Upang Ulitin

Gustong-gusto ni Zeus na iwanan ang Mount Olympus upang makipagsapalaran na may magagandang nymphs. Sa isang paglalakbay, sinabi niya sa isang nymph sa bundok na tinawag na Echo upang ilayo ang kanyang asawa, si Hera, kung susundan siya. Si Hera ay talagang naghahanap para kay Zeus, at ginawa ni Echo ang lahat upang mapanatili ang pag-uusap ni Hera. Sa wakas, nawala ang ulo ni Hera at isinumpa ang kawawang Echo upang ulitin lamang niya ang mga huling salitang sinabi ng iba. Ang ginawa ni Hera kay Zeus nang maabutan siya ay hulaan ng kahit sino.

At iyon, medyo, ay echoMarami sa buhay. Inuulit nito ang sinabi sa ulitin. Ito ay isang simpleng pagpapaandar, ngunit isang mahalaga. Nang walang echo , hindi kami makakakuha ng nakikitang output mula sa mga shell script, halimbawa.

Habang hindi na puno ng maraming mga kampanilya at sipol, mayroong isang magandang pagkakataon na echo ay may ilang mga kakayahan na hindi mo alam tungkol o na nakalimutan mo.

echo? echo!

Karamihan sa mga sistema ng Linux ay nagbibigay ng dalawang bersyon ng echo. Ang Bash shell ay may kanya-kanyang echo nakapaloob dito, at mayroong isang binary na maisasagawa na bersyon ng echo din.

Maaari naming makita ang dalawang magkakaibang bersyon sa pamamagitan ng paggamit ng mga sumusunod na utos:

uri ng echo
kung saan ay umalingawngaw

Ang uri Sinasabi sa atin ng utos kung ang utos na ipinapasa natin dito bilang argumento nito ay isang shell builtin, isang binary na maisasagawa, isang alias, o isang pagpapaandar. Iniuulat sa amin iyon echo ay isang shell builtin.

Sa sandaling ito ay natagpuan ang isang sagot, uri humihinto sa paghahanap para sa karagdagang mga tugma. Kaya't hindi ito sinasabi sa amin kung mayroong iba pang mga utos na may parehong pangalan na naroroon sa system. Ngunit sinasabi nito sa amin kung alin ang una nitong nahahanap. At iyon ang gagamitin bilang default kapag inilabas namin ang utos na iyon.

Ang kung saan Hinahanap ng utos ang binary na maipapatupad, source code, at pahina ng tao para sa utos na ipinapasa namin dito bilang parameter ng linya ng utos nito. Hindi ito naghahanap ng mga built-in na shell dahil wala silang hiwalay na binary na maipapatupad. Ang mga ito ay isang mahalagang bahagi ng Bash na naisakatuparan.

Ang kung saan iniuulat ng utos na echo ay isang binary maipatutupad na matatagpuan sa / basurahan direktoryo

Upang magamit ang bersyon na iyon ng echo kakailanganin mong malinaw na tawagan ito sa pamamagitan ng pagbibigay ng landas sa maipapatupad sa linya ng utos:

/ bin / echo --versi

Ang shell builtin ay hindi alam kung ano ang --versi Ang argument ng command-line ay, inuulit lamang ito sa window ng terminal:

echo --versi

Ang mga halimbawang ipinakita dito lahat ay gumagamit ng default na bersyon ng echo, sa Bash shell.

Pagsulat ng Teksto sa Terminal

Upang magsulat ng isang simpleng string ng teksto sa terminal window, i-type echo at ang string na nais mong ipakita ito:

echo Ang pangalan ko ay Dave.

Ang teksto ay inuulit para sa amin. Ngunit habang nag-e-eksperimento ka, malalaman mo sa lalong madaling panahon na ang mga bagay ay maaaring maging mas kumplikado. Tingnan ang halimbawang ito:

echo Ang pangalan ko ay Dave at ako ay isang geek.

Ipinapakita ang window ng terminal a> mag-sign at umupo doon, naghihintay. Ibabalik ka ng Ctrl + C sa prompt ng utos. Anong nangyari doon?

Ang nag-iisang quote o apostrophe sa salitang "Ako" ay nalilito echo. Nabigyang kahulugan nito ang solong quote bilang simula ng isang naka-quote na seksyon ng teksto. Dahil hindi ito nakakita ng isang pagsasara ng solong quote,echo ay naghihintay para sa karagdagang input. Inaasahan nito na ang karagdagang pag-input upang isama ang nawawalang solong quote na hinihintay nito.

Upang maisama ang isang solong quote sa isang string, ang pinakasimpleng solusyon ay upang balutin ang buong string sa loob ng dobleng mga marka ng quote:

echo "Ang pangalan ko ay Dave at ako ay isang geek."

Ang pambalot ng iyong teksto sa dobleng mga marka ng quote ay mahusay na pangkalahatang payo. Sa mga script, malinis nitong tinatanggal ang mga parameter na dadaan mo echo. Ginagawa nitong mas madali ang pagbabasa — at pag-debug — ng mga script.

Paano kung nais mong isama ang isang dobleng character na quote sa iyong string ng teksto? Madali iyan, maglagay lamang ng backslash \ sa harap ng dobleng marka ng quote (na walang puwang sa pagitan nila).

echo "Ang pangalan ko ay Dave at ako ay isang" geek. \ ""

Balot nito ang salitang "geek" sa dobleng mga marka ng quote para sa amin. Makikita natin ang higit pa sa mga ito nakatakas na talon mga character sa ilang sandali.

Paggamit ng Mga variable na may echo

Sa ngayon, nagsusulat kami ng paunang natukoy na teksto sa window ng terminal. Maaari kaming gumamit ng mga variable na may echo upang makabuo ng output na higit na pabago-bago at may mga halagang ipinasok dito para sa amin ng shell. Maaari naming tukuyin ang isang simpleng variable sa utos na ito:

my_name = "Dave"

Tinawag ang isang variable pangalan ko ay nilikha. Itinalaga ang halaga ng teksto na "Dave." Maaari naming gamitin ang variable na pangalan sa mga string na nadaanan namin echo , at ang halaga ng variable ay isusulat sa window ng terminal. Dapat kang maglagay ng isang sign ng dolyar $ sa harap ng variable na pangalan upang ipaalam echo alam na ito ay isang variable.

May isang kaba. Kung balot mo ang iyong string sa iisang mga marka ng quote echo ay tratuhin ang lahat nang literal. Upang magkaroon ng variable halaga ipinakita, at hindi ang pangalan ng variable, gumamit ng dobleng mga marka ng quote.

echo 'Ang pangalan ko ay $ my_name'
echo "Ang pangalan ko ay $ my_name"

Medyo naaangkop, sulit na ulitin:

  • Gamit walang asawa ang mga marka ng quote ay nagreresulta sa teksto na nakasulat sa window ng terminal sa a literal fashion
  • Gamitdoble ang mga marka ng quote ay nagreresulta sa variable na binibigyang kahulugan — na tinatawag ding variable expansion — at ang halaga nakasulat sa window ng terminal.

KAUGNAYAN:Paano Magtrabaho sa Mga Variable sa Bash

Paggamit ng Mga Utos Gamit ang echo

Maaari kaming gumamit ng isang utos na may echo at isama ang output nito sa string na nakasulat sa window ng terminal. Dapat nating gamitin ang sign ng dolyar $ na parang ang utos ay isang variable, at ibalot ang buong utos sa panaklong.

Gagamitin namin ang utos ng petsa. Ang isang tip ay ang paggamit ng utos nang mag-isa bago mo simulang gamitin ito echo. Sa ganoong paraan, kung may mali sa syntax ng iyong utos, kilalanin mo ito at iwasto bago mo isama ito sa echo utos Kung gayon, kung ang echo hindi ginagawa ng utos ang inaasahan mo, malalaman mong ang isyu ay dapat na kasama ng echo syntax dahil napatunayan mo na ang syntax ng utos.

Kaya, subukan ito sa window ng terminal:

petsa +% D

At, nasiyahan na nakukuha namin ang inaasahan namin mula sa utos ng petsa, isasama namin ito sa isang echo utos:

echo "Ang petsa ngayon ay: $ (petsa +% D)"

Tandaan na ang utos ay nasa loob ng panaklong at ang sign ng dolyar $ ay kaagad bago ang unang panaklong.

Pag-format ng Teksto Gamit ang echo

Ang -e (Paganahin ang pagtakas sa backslash) na pagpipilian ay hinahayaan kaming gumamit ng ilang mga character na nakatakas sa backslash upang baguhin ang layout ng teksto. Ito ang mga character na nakatakas sa backslash na maaari nating magamit:

  • \ a: Alerto (makasaysayang kilala bilang BEL). Bumubuo ito ng default na tunog ng alerto.
  • \ b: Sumusulat ng isang backspace character.
  • \ c: Pag-abandona ng anumang karagdagang output.
  • \ e: Sumusulat ng isang makatakas na character.
  • \ f: Sumusulat ng isang character na form feed.
  • \ n: Sumusulat ng isang bagong linya.
  • \ r: Sumusulat ng pagbalik ng karwahe.
  • \ t: Sumusulat ng isang pahalang na tab.
  • \ v: Sumusulat ng isang patayong tab.
  • \\: Sumusulat ng isang backslash character.

Gumamit tayo ng ilan sa kanila at tingnan kung ano ang ginagawa nila.

echo -e "Ito ay isang mahabang linya ng teksto \ nsplit sa kabuuan ng tatlong mga linya \ nwith \ ttabs \ ton \ tthe \ tthird \ tline"

Ang teksto ay nahahati sa isang bagong linya kung saan namin nagamit ang \ n ang mga character at isang tab ay naipasok kung saan namin nagamit ang \ t mga tauhan

echo -e "Narito \ vare \ vvertical \ vtabs"

Kagaya ng \ n mga bagong character character, isang patayong tab \ v ilipat ang teksto sa linya sa ibaba. Ngunit, hindi katulad ng\ n bagong mga character sa linya, ang \ v hindi sinisimulan ng patayong tab ang bagong linya sa haligi ng zero. Gumagamit ito ng kasalukuyang haligi.

Ang \ b ilipat ng mga character sa backspace ang cursor pabalik sa isang character. Kung mayroong higit pang teksto na isusulat sa terminal, ang teksto na iyon ay mai-o-overlap sa nakaraang character.

echo -e "123 \ b4"

Ang "3" ay sobrang pagkasulat ng "4".

Ang \ r sanhi ng character na bumalik sa karwaheecho upang bumalik sa simula ng kasalukuyang linya at upang magsulat ng anumang karagdagang teksto mula sa haligi na zero.

echo -e "123 \ r456"

Ang mga character na "123" ay na-o-overtake ng mga "456" na character.

Ang \ a makagawa ang isang alerto na character ng isang maririnig na “bleep.” Gumagamit ito ng default na tunog ng alerto para sa iyong kasalukuyang tema.

echo -e "Gumawa ng isang bleep \ a"

Ang -n Ang pagpipiliang (walang bagong linya) ay hindi isang sunud-sunod na nakatakas na talon, ngunit nakakaapekto ito sa mga pampaganda ng layout ng teksto, kaya tatalakayin namin ito rito. Pinipigilan nito echo mula sa pagdaragdag ng isang bagong linya sa dulo ng teksto. Ang prompt ng utos ay lilitaw nang direkta pagkatapos ng teksto na nakasulat sa window ng terminal.

echo -n "walang pangwakas na bagong linya"

Paggamit ng echo Sa Mga File at Direktoryo

Pwede mong gamitin echo bilang isang uri ng bersyon ng mahirap na tao ng ls. Ang iyong mga pagpipilian ay kakaunti at malayo sa pagitan ng iyong ginamit echo ganito. Kung kailangan mo ng anumang uri ng katapatan o mahusay na kontrol, mas mahusay kang gumamit ls at ang legion ng mga pagpipilian.

Inililista ng utos na ito ang lahat ng mga file at direktoryo sa kasalukuyang direktoryo:

echo *

Inililista ng utos na ito ang lahat ng mga file at direktoryo sa kasalukuyang direktoryo na ang pangalan ay nagsisimula sa "D":

echo D *

Inililista ng utos na ito ang lahat ng mga file na ".desktop" sa kasalukuyang direktoryo:

echo * .desktop

Oo naman Hindi ito naglalaro echoAng lakas. Gamitin ls.

Pagsusulat sa Mga File na may echo

Maaari naming i-redirect ang output mula sa echo at maaaring lumikha ng mga file ng teksto o sumulat sa mga mayroon nang mga file ng teksto.

Kung gagamitin natin ang > redirection operator, ang file ay nilikha kung wala ito. Kung ang file ay mayroon, ang output mula sa echo ay idinagdag sa simula ng file, na nag-o-overtake ng anumang nakaraang nilalaman.

Kung gagamitin natin ang >> redirection operator, ang file ay nilikha kung wala ito. Ang output mula sa echo ay idinagdag sa dulo ng file at hindi na-o-overwrite ang anumang umiiral na nilalaman ng file.

echo "Lumilikha ng isang bagong file." > sample.txt
echo "Pagdaragdag sa file." >> sample.txt
sample ng pusa.txt

Ang isang bagong file ay nilikha ng unang utos, at ang teksto ay ipinasok dito. Ang pangalawang utos ay nagdaragdag ng isang linya ng teksto sa ilalim ng file. Ang pusa ipinapakita ng utos ang mga nilalaman ng file sa window ng terminal.

At syempre, maaari kaming magsama ng mga variable upang magdagdag ng ilang kapaki-pakinabang na impormasyon sa aming file. Kung ang isang file ay isang logfile, baka gusto naming magdagdag ng isang timestamp dito. Maaari nating gawin iyon sa susunod na utos.

Tandaan ang solong mga marka ng quote sa paligid ng mga parameter para sa petsa utos Pinipigilan nila ang puwang sa pagitan ng mga parameter na binibigyang kahulugan bilang pagtatapos ng listahan ng parameter. Tinitiyak nila na ipinapasa ang mga parameterpetsa tama

echo "Nagsimula ang Logfile: $ (petsa + '% D% T')"> logfile.txt
cat logfile.txt

Ang aming logfile ay nilikha para sa amin at pusa ipinapakita sa amin na ang datestamp at timestamp ay parehong idinagdag dito.

KAUGNAYAN:Ano ang stdin, stdout, at stderr sa Linux?

Repertoire iyon ng echo

Isang simpleng utos, ngunit kailangang-kailangan. Kung wala ito, kailangan nating likhain ito.

Ang mga shenanigans ni Zeus ay gumawa ng mabuti, pagkatapos ng lahat.


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