Creative Saplings

Kaiku-komennon käyttäminen Linuxissa

lokakuu 19, 2020
No Comments
  • Dave McKay

    @TheGurkha

  • 29. lokakuuta 2019, klo 8.00 EDT
Fatmawati Achmad Zaenuri /

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.

Mainos

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.

Mainos

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
Mainos

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.
Mainos

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.

Mainos

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.

Mainos

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)"
Mainos

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"
Mainos

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"
Mainos

-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*
Mainos

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
Mainos

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
Mainos

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
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 ”

Articles
Previous Post

10 kuparirikkainta ruokaa, jotka sinun tulisi sisällyttää ruokavalioosi

Next Post

Valitse makusi

Vastaa Peruuta vastaus

Viimeisimmät artikkelit

  • Maailman parhaat valokuvauskoulut, 2020
  • Suvereenit kansalaiset vievät hallitustenvastaisen filosofiansa tielle
  • Stukkokorjauskustannusten opas
  • Muckrakers (Suomi)
  • Tarkka onkologia

Arkistot

  • helmikuu 2021
  • tammikuu 2021
  • joulukuu 2020
  • marraskuu 2020
  • lokakuu 2020
  • syyskuu 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.