Kuinka Echo-komentoa käytetään Linuxissa
The echo
komento on täydellinen muotoillun tekstin kirjoittamiseen pääteikkunaan. Eikä sen tarvitse olla staattista tekstiä. Se voi sisältää komentotulkin muuttujia, tiedostonimiä ja hakemistoja. Voit myös ohjata Echon luomaan tekstitiedostoja ja lokitiedostoja. Seuraa tätä yksinkertaista ohjetta selvittää, miten.
kaiku toistaa sen, mitä käsket sen toistaa
Zeus oli mieltynyt lähtemään Olymposvuorelta kauniiden nymfien seuraan. Eräällä matkalla hän käski Echo-nimistä vuorinymfiä harhauttamaan vaimonsa Heran, jos tämä seuraisi häntä. Hera tuli etsimään Zeusta, ja Echo teki kaikkensa pitääkseen Heran keskustelussa. Lopulta Hera menetti malttinsa ja kirosi Echo-paran niin, että tämä vain toistaa viimeiset sanat, jotka joku toinen oli sanonut. Mitä Hera teki Zeukselle, kun sai hänet kiinni, on kenen tahansa arvattava.
ja se, aika lailla, on echo
’s lot in life. Se toistaa sen, mitä sen on käsketty toistaa. Se on yksinkertainen tehtävä, mutta elintärkeä sellainen. Ilman echo
, emme voisi saada näkyvää ulostuloa esimerkiksi komentotulkin skripteiltä.
vaikka kellojen ja pillien paljous ei ole kuormittanut, on hyvin mahdollista, että echo
sisältää joitain ominaisuuksia, joista et tiennyt tai jotka olit unohtanut.
echo? kaiku!
useimmissa Linux-järjestelmissä on kaksi versiota echo
. Bash-komentotulkkiin on rakennettu oma echo
, ja siitä on myös binäärinen suoritettava versio echo
.
voidaan nähdä kaksi eri versiota käyttämällä seuraavia komentoja:
type echo
whereis echo
The type
komento kertoo, onko komento, jonka siirrämme sille sen argumenttina, komentotulkki builtin, binääritiedosto, alias vai funktio. Se kertoo, että echo
on kuorirakennus.
heti vastauksen löydettyään type
lopettaa jatkopelien etsimisen. Se ei siis kerro, onko järjestelmässä muita saman nimisiä komentoja. Mutta se kertoo, kumman se löytää ensin. Ja sitä käytetään oletuksena, kun annamme tuon komennon.
whereis
komento etsii komentoriviparametrikseen binäärisen suoritustiedoston, lähdekoodin ja man-sivun sille välittämästämme komennosta. Se ei etsi shell builtins, koska niillä ei ole erillistä binääritiedostoa. Ne ovat olennainen osa Bash-ohjelmaa.
whereis
komento kertoo, että echo
on binäärinen suoritustiedosto, joka sijaitsee /bin
hakemistossa.
käyttääksesi kyseistä versiota echo
sitä pitäisi eksplisiittisesti kutsua antamalla polku suoritettavaan komentoriville:
/bin/echo --version
komentotulkin rakentama ei tiedä mitä komentoriviargumentti on, se vain toistaa sen pääteikkunassa:
echo --version
tässä esitetyt esimerkit käyttävät kaikki oletusversiotaecho
, Bash-komentotulkissa.
kirjoittaa tekstiä päätteeseen
kirjoittaaksesi yksinkertaisen merkkijonon pääteikkunaan, Kirjoita echo
ja merkkijono, jonka haluat sen näyttävän:
echo My name is Dave.
teksti se toistuu meille. Mutta kun kokeilet, huomaat pian, että asiat voivat saada hieman monimutkaisempi. Katso tätä esimerkkiä:
echo My name is Dave and I'm a geek.
pääteikkunassa näkyy >
merkki ja istuu siinä odottamassa. Ctrl + C palauttaa sinut komentokehotteeseen. Mitä tapahtui?
yksittäinen lainaus tai heittomerkki sanassa ”olen” sekaisin echo
. Se tulkitsi tuon yksittäisen sitaatin alkavaksi lainatuksi tekstiosuudeksi. Koska se ei havainnut päätössingleä, echo
odotti lisää syöttöä. Se odotti, että lisäpanostus sisältää puuttuvan yksittäisen sitaatin, jota se odotti.
yhden sitaatin sisällyttämiseksi merkkijonoon yksinkertaisin ratkaisu on kääriä koko merkkijono kaksinkertaisten lainausmerkkien sisään:
echo "My name is Dave and I'm a geek."
tekstin kääriminen kaksinkertaisiin lainausmerkkeihin on hyvä yleisneuvo. Skripteissä se rajaa puhtaasti syöttämäsi parametrit echo
. Tämä tekee skriptien lukemisesta—ja virheenkorjauksesta-paljon helpompaa.
mitä jos haluat lisätä tekstijonoosi kaksoislainausmerkin? Se on helppoa, laita vain takaisku \
kaksoislainausmerkin eteen (eikä niiden väliin jää tilaa).
echo "My name is Dave and I'm a \"geek.\""
Tämä kietoo sanan ”geek” meille kaksinkertaisiin lainausmerkkeihin. Näitä takapakkia paenneita hahmoja nähdään lähiaikoina lisää.
käyttäen muuttujia echo
tähän mennessä olemme kirjoittaneet ennalta määriteltyä tekstiä pääteikkunaan. Voimme käyttää muuttujia echo
tuottaaksemme tuotoksen, joka on dynaamisempi ja johon on lisätty arvoja komentotulkin toimesta. Voimme määritellä yksinkertaisen muuttujan tällä komennolla:
my_name="Dave"
muuttuja my_name
on luotu. Sille on annettu tekstin arvo ” Dave.”Voimme käyttää muuttujan nimeä merkkijonoissa , jotka siirrämme echo
, ja muuttujan arvo kirjoitetaan pääteikkunaan. Muuttujan nimen eteen pitää laittaa dollarimerkki $
, jotta echo
tietää, että kyseessä on muuttuja.
on varoitus. Jos olet paketoinut merkkijonosi yksittäisiin lainausmerkkeihin echo
käsittelee kaiken kirjaimellisesti. Jos haluat, että muuttujan arvo näytetään, eikä muuttujan nimi, Käytä kaksinkertaisia lainausmerkkejä.
echo 'My name is $my_name'
echo "My name is $my_name"
jokseenkin osuvasti, se kannattaa toistaa:
- käyttämällä yksittäisiä lainausmerkkejä saadaan teksti pääteikkunaan kirjaimellisella tavalla.
- kaksoislainausmerkkien avulla muuttuja tulkitaan—jota kutsutaan myös muuttujan laajennukseksi—ja arvo kirjoitetaan pääteikkunaan.
liittyvät: kuinka työskennellä muuttujien kanssa Bashissa
käyttämällä komentoja echo
Voimme käyttää komentoa echo
ja sisällyttää sen tulosteen merkkijonoon, joka kirjoitetaan pääteikkunaan. On käytettävä dollarimerkkiä $
ikään kuin komento olisi muuttuja, ja käärittävä koko komento sulkeisiin.
käytämme date-komentoa. Yksi vinkki on käyttää komentoa yksin ennen kuin aloitat sen käytön echo
. Näin, jos komennon syntaksissa on jotain vikaa, tunnistat sen ja korjaat sen ennen kuin sisällytät sen echo
– komentoon. Sitten, jos echo
komento ei tee sitä, mitä odottaa, tiedät ongelman olevan echo
syntaksilla, koska olet jo todistanut komennon syntaksin.
joten kokeile tätä pääteikkunassa:
date +%D
echo "Today's date is: $(date +%D)"
huomaa, että komento on suluissa ja dollarimerkki $
on välittömästi ennen ensimmäistä sulkea.
formating Text with echo
-e
(enable backslash escapes)-valitsimen avulla voimme käyttää joitain backslash-karanneita merkkejä tekstin asettelun muuttamiseen. Näitä takaisinpäin karanneita hahmoja Voimme käyttää:
käytetään osa niistä ja katsotaan, mitä ne tekevät.
echo -e "This is a long line of text\nsplit across three lines\nwith\ttabs\ton\tthe\tthird\tline"
teksti on jaettu uudelle riville, jossa olemme käyttäneet \n
merkkejä ja lisätään välilehti, jossa olemme käyttäneet \t
merkkejä.
echo -e "Here\vare\vvertical\vtabs"
kuten \n
uudet rivimerkit, pystysuuntainen välilehti \v
siirtää tekstin alla olevalle riville. Mutta toisin kuin \n
uudet rivimerkit, \v
pystyrivi ei aloita uutta riviä sarakkeesta nolla. Se käyttää nykyistä saraketta.
\b
taustamerkit siirtävät kursoria yhden merkin taaksepäin. Jos päätteeseen kirjoitetaan enemmän tekstiä, kyseinen teksti korvaa edellisen merkin.
echo -e "123\b4"
”3” on ylikirjoitettu ”4”.
\r
carriage return-merkki saa echo
palaamaan nykyisen rivin alkuun ja kirjoittamaan mahdollisen tekstin sarakkeesta nolla.
echo -e "123\r456"
”123” merkkiä korvataan ”456” merkillä.
hälytysmerkki tuottaa audible ” – piippauksen.”Se käyttää oletuksena hälytysääni nykyisen teeman.
echo -e "Make a bleep\a"
-n
(No newline)-vaihtoehto ei ole takaperin karannut sekvenssi, mutta se vaikuttaa tekstin asettelun kosmetiikkaan, joten siitä keskustellaan täällä. Se estää echo
lisäämästä tekstin loppuun uutta riviä. Komentokehote ilmestyy suoraan pääteikkunaan kirjoitetun tekstin jälkeen.
echo -n "no final newline"
käyttämällä kaikua tiedostoineen ja Hakemistoineen
voit käyttää echo
eräänlaisena köyhän miehen versiona ls
. Vaihtoehdot ovat harvassa, kun käytät echo
näin. Jos kaipaa minkäänlaista uskollisuutta tai hienosäätöä, on parempi käyttää ls
ja sen lukuisia vaihtoehtoja.
Tämä komento listaa kaikki nykyisen kansion tiedostot ja kansiot:
echo *
Tämä komento listaa kaikki nykyisen kansion tiedostot ja hakemistot, joiden nimi alkaa ”D”:
echo D*
Tämä komento listaa kaikki ”.työpöydän ” tiedostot nykyisessä kansiossa:
echo *.desktop
Joo. Tämä ei ole pelaamista echo
n vahvuuksille. Käytä ls
.
kirjoitettaessa tiedostoihin, joissa on echo
, voimme ohjata tulosteen echo
ja joko luoda tekstitiedostoja tai kirjoittaa olemassa oleviin tekstitiedostoihin.
Jos käytämme >
uudelleenohjausoperaattoria, tiedosto luodaan, jos sitä ei ole olemassa. Jos tiedosto on olemassa, tuloste echo
lisätään tiedoston alkuun ja korvataan aikaisempi sisältö.
Jos käytämme >>
uudelleenohjausoperaattoria, tiedosto luodaan, jos sitä ei ole olemassa. Tuloste echo
lisätään tiedoston loppuun eikä korvaa tiedoston olemassa olevaa sisältöä.
echo "Creating a new file." > sample.txt
echo "Adding to the file." >> sample.txt
cat sample.txt
ensimmäinen komento luo uuden tiedoston, johon lisätään teksti. Toinen komento Lisää tekstirivin tiedoston alaosaan. cat
komento näyttää tiedoston sisällön pääteikkunaan.
ja tietenkin voimme lisätä muuttujia lisätäksemme hyödyllistä tietoa tiedostoomme. Jos tiedosto on lokitiedosto, haluamme ehkä lisätä siihen aikaleiman. Voimme tehdä sen seuraavalla komennolla.
huomaa date
– komennon parametrien ympärillä olevat yksittäiset lainausmerkit. Ne estävät parametrien välisen tilan tulkitsemisen parametriluettelon lopussa. Ne varmistavat, että parametrit siirtyvät date
oikein.
echo "Logfile started: $(date +'%D %T')" > logfile.txt
cat logfile.txt
meidän lokitiedosto on luotu meitä varten ja cat
osoittaa, että päiväys ja aikaleima molemmat lisättiin siihen.
liittyvät: Mitä ovat stdin, stdout ja stderr Linuxissa?
se on Echon repertuaari
yksinkertainen käsky, mutta välttämätön. Jos sitä ei olisi, se olisi keksittävä.
Zeuksen metkut tekivät sittenkin hyvää.