Kaiku-komennon käyttäminen Linuxissa
- Dave McKay
@TheGurkha
- 29. lokakuuta 2019, klo 8.00 EDT
echo
-komento on täydellinen muotoillun tekstin kirjoittamiseen pääteikkunaan. Ja sen ei tarvitse olla staattinen teksti. Se voi sisältää shell-muuttujia, tiedostonimiä ja hakemistoja. Voit myös ohjata kaiun uudelleen luomaan tekstitiedostoja ja lokitiedostoja. Seuraa tätä yksinkertaista opasta saadaksesi selville, miten.
Kaiku toistaa sen, mitä käskit sen toistamaan
Zeus halusi jättää Olympusvuoren pariksi kauniiden nymfien kanssa. Yhdellä matkalla hän käski vuoren nymfin nimeltä Echo sijoittamaan vaimonsa Heran, jos hän seuraisi häntä. Hera tuli etsimään Zeusta, ja Echo teki kaiken voitavansa pitääkseen Heraa keskustelussa. Lopuksi Hera menetti itsensä ja kirosi köyhän Echon niin, että hän toisti vain viimeiset sanat, jotka joku muu oli sanonut. Se, mitä Hera teki Zeukselle, kun hän sai hänet kiinni, on kenenkään arvaus.
Ja se on melkein echo
paljon elämässä. Se toistaa sen, mitä sen on käsketty toistaa. Se on yksinkertainen, mutta tärkeä tehtävä. Ilman echo
emme pystyisi saamaan näkyvää ulostuloa esimerkiksi komentosarjojen komentosarjoista.
Vaikka niitä ei ole ladattu kellojen ja pillien lukumäärä, on hyvät mahdollisuudet, että echo
sisältää joitain ominaisuuksia, joista et tiennyt tai jotka olet unohtanut.
kaiku? echo!
Useimmissa Linux-järjestelmissä on kaksi versiota echo
. Bash-kuoreen on sisäänrakennettu oma echo
, ja siellä on myös binäärinen suoritettava versio echo
.
Näemme kaksi eri versiota käyttämällä seuraavia komentoja:
type echo
whereis echo
type
-komento kertoo meille, onko komento, jonka välitämme sille argumenttina, sisäänrakennettu kuori, binaarinen suoritustiedosto, alias vai funktio. Se ilmoittaa meille, että echo
on sisäänrakennettu kuori.
Heti kun se on löytänyt vastauksen, type
lopettaa uusien otteluiden etsimisen. Joten se ei kerro meille, onko järjestelmässä muita komentoja samalla nimellä. Mutta se kertoo meille, kumman se löytää ensin. Ja sitä käytetään oletusarvoisesti, kun annamme komennon.
Komento whereis
etsii binaarista suoritettavaa tiedostoa, lähdekoodia ja man-sivua komento, jonka välitämme sille sen komentoriviparametrina. Se ei etsi sisäänrakennettuja shell-rakenteita, koska niillä ei ole erillistä binääritiedostoa. Ne ovat olennainen osa Bash-suoritettavaa tiedostoa.
whereis
-komento ilmoittaa, että echo
on binaarinen suoritustiedosto sijaitsee hakemistossa /bin
.
Jos haluat käyttää echo
-versiota, sinun on kutsuttava sitä nimenomaisesti antamalla polku komentorivillä suoritettavaan tiedostoon:
/bin/echo --version
Sisäänrakennettu kuori ei tiedä mitä --version
komentoriviargumentti on, että se vain toistaa sen pääteikkunassa:
echo --version
Kaikki tässä esitetyt esimerkit käyttävät oletusarvoa echo
-version Bash-kuoressa.
Tekstin kirjoittaminen päätelaitteeseen
Yksinkertaisen tekstijonon kirjoittaminen pääteikkunaan , kirjoita echo
ja merkkijono, jonka haluat sen näyttävän:
echo My name is Dave.
Teksti toistetaan meille. Mutta kokeilessasi huomaat pian, että asiat voivat olla hieman monimutkaisempia. Katso tämä esimerkki:
echo My name is Dave and I"m a geek.
Pääteikkunassa näkyy >
-merkki ja istuu siellä odottaen. Ctrl + C palauttaa sinut komentokehotteeseen. Mitä siellä tapahtui?
Yksittäinen lainaus tai heittomerkki sanassa ”olen” hämmentynyt echo
. Se tulkitsi yhden lainauksen lainatun osan aluksi tekstin. Koska se ei havainnut lopullista yksittäistä lainausta, echo
odotti lisää syötettä. Se odotti, että lisäpanos sisältäisi odottavan yksittäisen lainauksen.
Jos haluat sisällyttää yksittäisen lainauksen merkkijonoon, yksinkertaisin ratkaisu on kietoa koko merkkijono kaksoislainausmerkkeihin:
echo "My name is Dave and I"m a geek."
Tekstin kääriminen kaksoislainausmerkeissä on hyvä yleinen neuvo. Skripteissä se rajaa puhtaasti parametrit, jotka välität echo
. Tämä helpottaa komentosarjojen lukemista ja virheenkorjausta.
Entä jos haluat lisätä kaksinkertaisen lainausmerkin tekstijonoon?Se on helppoa, laita vain taaksepäin viiva \
kaksoislainausmerkin eteen (ilman väliä).
echo "My name is Dave and I"m a \"geek.\""
Tämä kietoo sanan ”geek” meille kaksoislainausmerkkeihin. Näemme lisää näitä taaksepäin viivoitettuja merkkejä pian.
Muuttujien käyttäminen kaikun kanssa
Toistaiseksi , olemme kirjoittaneet ennalta määritettyä tekstiä pääteikkunaan. Voimme käyttää echo
-muuttujia tuottaaksemme dynaamisemman tuotoksen, jonka kuori on lisännyt siihen arvot. voi määrittää yksinkertaisen muuttujan tällä komennolla:
my_name="Dave"
Muuttuja nimeltä my_name
on luotu. Se on määritti tekstin ”Dave” arvon. Voimme käyttää muuttujan nimeä merkkijonoissa, jotka välitämme osoitteeseen echo
, ja muuttujan arvo kirjoitetaan pääteikkunaan. Sinun on laitettava dollarin merkki $
muuttujan nimen eteen, jotta echo
tietää, että se on muuttuja.
Varoitus on olemassa. Jos olet käärittänyt merkkijonosi lainausmerkeihin, echo
käsittelee kaikkea kirjaimellisesti. Jos haluat, että muuttujan arvo näkyy muuttujan nimen sijasta, käytä kaksoislainausmerkkejä.
echo "My name is $my_name"
echo "My name is $my_name"
Hieman osuvasti, se kannattaa toistaa:
- Yksittäisten lainausmerkkien käyttö johtaa tekstin kirjoittamiseen pääteikkunaan kirjaimellisesti.
- Kaksoislainausmerkkien käyttö johtaa tulkittava muuttuja – jota kutsutaan myös muuttujan laajennukseksi – ja arvo kirjoitetaan pääteikkunaan.
LIITTYVÄT: Kuinka työskennellä muuttujien kanssa Bashissa
Komentojen käyttäminen echo
Voimme käyttää komentoa echo
ja sisällyttää sen lähdön merkkijonoon, joka kirjoitetaan pääteikkunaan. Meidän on käytettävä dollarimerkkiä $
ikään kuin komento olisi muuttuja, ja käärittävä koko komento sulkeisiin.
Käytämme päivämääräkomentoa . Yksi vinkki on käyttää komentoa yksin, ennen kuin aloitat sen käyttämisen echo
-palvelun kanssa. Tällä tavoin, jos komentosi syntaksissa on jotain vikaa, tunnistat sen ja korjaat sen ennen kuin sisällytät sen komentoon echo
. Jos sitten echo
-komento ei toimi odotetulla tavalla, tiedät, että ongelman on oltava echo
-syntaksissa, koska sinä Olemme jo todistaneet komennon syntaksin.
Kokeile siis pääteikkunassa:
date +%D
Ja olemme vakuuttuneita siitä, että olemme saamme mitä odotamme päivämäärä -komennolta, integroimme sen echo
-komentoon:
echo "Today"s date is: $(date +%D)"
Huomaa, että komento on suluissa ja dollarin merkki $
on välittömästi ennen ensimmäisiä sulkeita.
Tekstin muotoilu kaikulla
Vaihtoehdolla -e
(ota taaksepäin vinoviivat pois) -vaihtoehdon avulla voimme muuttaa joitain taaksepäin poistettuja merkkejä tekstin asettelun muuttamiseen. Nämä ovat taaksepäin kallistetut merkit, joita voimme käyttää:
Käytetään joitain niistä ja katsotaan, mitä he tekevät.
echo -e "This is a long line of text\nsplit across three lines\nwith\ttabs\ton\tthe\tthird\tline"
Teksti on jaettu uudeksi riviksi, jossa olemme käyttäneet merkkejä \n
, ja välilehti lisätään kohtaan, jossa olemme käyttäneet merkkejä \t
.
echo -e "Here\vare\vvertical\vtabs"
Kuten \n
uudet rivimerkit, pystysuora välilehti \v
siirtää tekstin alla olevalle riville. Mutta toisin kuin \n
uudet rivimerkit, pystysuuntainen välilehti \v
ei aloita uutta riviä sarakkeen nollasta. Se käyttää nykyistä saraketta.
\b
askelpalautusmerkit vievät kohdistimen yhden merkin taakse. Jos päätelaitteeseen on kirjoitettava enemmän tekstiä, se korvaa edellisen merkin.
echo -e "123\b4"
”3” on ylikirjoitettu ” 4 ”.
\r
-vaihtoehdon palautusmerkki saa echo
palaamaan nykyisen rivin alkuun ja kirjoita lisää tekstiä sarakkeesta nolla.
echo -e "123\r456"
”123” merkit korvataan 456 merkillä.
\a
hälytysmerkki tuottaa äänimerkin. Se käyttää nykyisen teeman oletushälytysääntä.
echo -e "Make a bleep\a"
-n
(ei uutta riviä) -vaihtoehto ei ole taaksepäin vinoviiva, mutta se vaikuttaa tekstiasettelun kosmetiikkaan, joten keskustelemme siitä täällä. Se estää echo
lisäämästä uusi rivi tekstin loppuun. Komentokehote näkyy välittömästi pääteikkunaan kirjoitetun tekstin jälkeen.
echo -n "no final newline"
Kaiun käyttäminen tiedostojen ja hakemistojen kanssa
Voit käyttää echo
lajitteluna köyhän miehen versiosta ls
. Vaihtoehtojasi on vähän ja kaukana, kun käytät echo
näin. Jos tarvitset minkäänlaista tarkkuutta tai hienoa hallintaa, sinun on parempi käyttää ls
ja sen joukkoa vaihtoehtoja.
Tämä komento näyttää kaikki tiedostot ja hakemistot nykyisessä hakemistossa:
echo *
Tämä komento näyttää kaikki nykyisen hakemiston tiedostot ja hakemistot, joiden nimi alkaa ”D”:
echo D*
Tämä komento näyttää kaikki nykyisen hakemiston ”.desktop” -tiedostot:
echo *.desktop
Joo. Tätä ei toisteta echo
: n vahvuuksilla. Käytä ls
.
Kirjoitus tiedostoihin, joissa on kaikua
Voimme ohjata lähdön kohdasta echo
ja joko luo tekstitiedostoja tai kirjoita olemassa oleviin tekstitiedostoihin.
Jos käytämme uudelleenohjausoperaattoria >
, tiedosto luodaan, jos sitä ei ole. Jos tiedosto on olemassa, echo
-lähde lisätään tiedoston alkuun korvaamalla kaikki aiemmat sisällöt.
Jos käytämme >>
uudelleenohjausoperaattori, tiedosto luodaan, jos sitä ei ole olemassa. Tiedoston echo
lähtö 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äisellä komennolla luodaan uusi tiedosto ja lisätään tekstiä siihen. Toinen komento lisää tekstirivin tiedoston loppuun. cat
-komento näyttää tiedoston sisällön pääteikkunaan.
Ja tietysti voimme sisällyttää muuttujia lisäämään hyödyllistä tietoa tiedostoon. Jos tiedosto on lokitiedosto, saatamme haluta lisätä siihen aikaleiman. Voimme tehdä sen seuraavalla komennolla.
Huomaa yksittäiset lainausmerkit komentojen date
parametrien ympärillä. Ne estävät parametrien välisen tilan tulkitsemisen parametriluettelon loppuun. Ne varmistavat, että parametrit välitetään date
-palveluun oikein.
echo "Logfile started: $(date +"%D %T")" > logfile.txt
cat logfile.txt
Lokitiedostomme on luotu meille ja cat
osoittaa meille, että siihen lisättiin sekä päivämäärä- että aikaleima.
LIITTYVÄT : Mitä ovat stdin, stdout ja stderr Linuxissa?
Se on kaikun ohjelmisto
Yksinkertainen komento, mutta välttämätön. Jos sitä ei olisi, meidän olisi keksittävä se.
Zeuksen shenanigans tekivät loppujen lopuksi hyvää.
Dave McKay käytti tietokoneita ensimmäisen kerran, kun lävistetty teippi oli muodissa, ja hän on ohjelmoinut siitä lähtien. Yli 30 vuoden ajan IT-alalla hän on nyt kokopäiväinen teknologiatoimittaja. Uransa aikana hän on työskennellyt freelance-ohjelmoijana, kansainvälisen ohjelmistokehitystiimin johtajana, IT-palveluiden projektipäällikkönä ja viimeksi tietosuojavastaavana. Dave on Linux-evankelista ja avoimen lähdekoodin puolestapuhuja. Lue koko Bio ”