Hogyan kell használni az Echo parancs Linux

Fatmawati Achmad Zaenuri/

a echo parancs tökéletes formázott szöveg írására a terminál ablakába. És nem kell statikus szövegnek lennie. Tartalmazhat shell változókat, fájlneveket és könyvtárakat. Az echo-t átirányíthatja szöveges fájlok és naplófájlok létrehozására is. Kövesse ezt az egyszerű útmutatót, hogy megtudja, hogyan.

Echo megismétli, amit mondasz neki, hogy ismételje meg

Zeusz szerette elhagyni az Olympus-hegyet, hogy gyönyörű nimfákkal társuljon. Az egyik út, azt mondta egy hegyi nimfa nevű Echo waylay felesége, Hera, ha ő követte őt. Héra valóban Zeuszt kereste, Echo pedig mindent megtett, hogy Herát beszélgetésben tartsa. Végül Hera elvesztette az önuralmát, és elátkozta szegény Echo-t, hogy csak az utolsó szavakat ismételje meg, amelyeket valaki más mondott. Hogy Hera mit tett Zeusszal, amikor utolérte, azt bárki kitalálhatja.

és ez nagyjából a echo élete. Megismétli, amit mondtak neki, hogy ismételje meg. Ez egy egyszerű funkció, de létfontosságú. echo nélkül nem tudnánk látható kimenetet kapni például a shell szkriptekből.

bár nem sok harang és síp van terhelve, jó esély van arra, hogy a echo rendelkezik olyan képességekkel, amelyekről nem tudtál, vagy amelyeket elfelejtettél.

echo? echo!

a legtöbb Linux rendszer a echo két verzióját biztosítja. A Bash shell saját echo van beépítve, és van egy bináris futtatható változata echo is.

láthatjuk a két különböző változat segítségével a következő parancsokat:

type echo
whereis echo

a type a parancs megmondja, hogy az argumentumként átadott parancs beépített héj, bináris futtatható fájl, álnév vagy függvény. Azt jelenti nekünk, hogy echo egy beépített héj.

amint megtalálta a választ, type abbahagyja a további mérkőzések keresését. Tehát nem mondja meg, hogy vannak – e más, azonos nevű parancsok a rendszerben. De elárulja, melyiket találja meg először. Ez az, amelyet alapértelmezés szerint használunk, amikor kiadjuk ezt a parancsot.

a whereis parancs a bináris futtatható fájlt, forráskódot és man oldalt keresi annak a parancsnak, amelyet parancssori paraméterként adunk át neki. Nem keresi a shell builtineket, mert nincs külön bináris futtatható fájljuk. Ezek szerves részét képezik a Bash futtatható.

a whereis parancs azt jelenti, hogy a echo egy bináris futtatható fájl, amely a /bin könyvtárban található.

a echo verziójának használatához kifejezetten meg kell hívnia a futtatható fájl elérési útjának megadásával a parancssorban:

/bin/echo --version

A beépített shell nem tudja, mi a --version parancssori argumentum, csak megismétli a terminál ablakban:

echo --version

az itt bemutatott példák mindegyike a echo alapértelmezett verzióját használja a Bash shell-ben.

Szöveg írása a terminálra

Ha egy egyszerű szövegsort szeretne írni a terminál ablakába, írja be aecho és a megjeleníteni kívánt karakterláncot:

echo My name is Dave.

ismétlődik számunkra. De ahogy kísérletezel, hamarosan rájössz, hogy a dolgok kissé bonyolultabbá válhatnak. Nézd meg ezt a példát:

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

a terminál ablakban megjelenik egy > jel, és ott ül, várva. A Ctrl + C visszatér a parancssorba. Mi történt ott?

Az “én” szó egyetlen idézete vagy aposztrófja zavaros echo. Ezt az egyetlen idézetet a szöveg idézett szakaszának kezdeteként értelmezte. Mivel nem észlelt egyetlen záró idézetet, echo további bemenetre várt. Arra számított, hogy a további bemenet tartalmazza a hiányzó egyetlen idézetet, amelyre várt.

egyetlen idézet beillesztése egy karakterláncba, a legegyszerűbb megoldás az, ha az egész karakterláncot kettős idézőjelbe csomagolja:

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

a szöveg dupla idézőjelbe csomagolása jó általános tanács. A szkriptekben tisztán határolja a echoparaméterekre átadott paramétereket. Ez sokkal könnyebbé teszi a szkriptek olvasását és hibakeresését.

mi van, ha kettős idézőjelet szeretne felvenni a szövegsorba? Ez egyszerű, csak tegyen egy fordított perjelet \ a kettős idézőjel elé (szóköz nélkül).

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

Ez a “geek” szót kettős idézőjelbe foglalja számunkra. Hamarosan többet fogunk látni ezekből a backslash-szökött karakterekből.

az echo

változók használata eddig előre definiált szöveget írtunk a terminál ablakába. Használhatjuk a echo változókat, hogy dinamikusabb kimenetet hozzunk létre, amelynek értékeit a shell illeszti be számunkra. Egy egyszerű változót definiálhatunk ezzel a paranccsal:

my_name="Dave"

létrehoztunk egy my_name nevű változót. A ” Dave.”Használhatjuk a változó nevét a echo karakterláncokban , és a változó értéke a terminál ablakába kerül. Meg kell tenni egy dollár jel $ előtt a változó nevét, hogy hagyja echo tudom, hogy ez egy változó.

van egy figyelmeztetés. Ha a karakterláncot egyetlen idézőjelbe csomagolta echo mindent szó szerint kezel. Ha a változó értékét szeretné megjeleníteni, nem pedig a változó nevét, használjon dupla idézőjeleket.

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

kissé találóan, amit érdemes megismételni:

  • egyetlen idézőjelek használatával a szöveg szó szerint íródik a terminál ablakába.
  • kettős idézőjelek használatával a változó értelmezhető—más néven változó bővítés -, és az érték a terminál ablakába kerül.

kapcsolódó: hogyan kell dolgozni a változókkal a Bash-ban

az echo

parancsok használatával használhatunk egy parancsot a echo és beépíthetjük a kimenetét a terminál ablakába írt karakterláncba. A $ dollárjelet úgy kell használnunk, mintha a parancs változó lenne, és zárójelbe kell tennünk az egész parancsot.

a dátum parancsot fogjuk használni. Az egyik tipp az, hogy a parancsot önmagában használja, mielőtt elkezdené használni a echo. Így, ha valami nem stimmel a parancs szintaxisával, azonosítod és kijavítod, mielőtt felvennéd a echo parancsba. Ezután, ha a echo parancs nem azt teszi, amit vár, akkor tudni fogja, hogy a problémát a echo szintaxissal kell elvégezni, mert már bizonyította a parancs szintaxisát.

tehát próbáld ki ezt a terminál ablakban:

date +%D

és miután meggyőződött arról, hogy megkapjuk, amit a date parancstól várunk, integráljuk egy echo parancs:

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

megjegyzés: a parancs a zárójelben van, a dollárjel pedig $ közvetlenül az első zárójel előtt van.

Szöveg formázása echo

a -e (backslash escapes engedélyezése) opció lehetővé teszi számunkra, hogy néhány backslash-szökött karaktert használjunk a szöveg elrendezésének megváltoztatásához. Ezek a backslash-szökött karakterek, amelyeket használhatunk:

használjunk néhányat, és nézzük meg, mit csinálnak.

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

a szöveg egy új sorra oszlik, ahol a\nkaraktereket használtuk, és egy lap kerül beillesztésre, ahol a\t karaktereket használtuk.

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

mint a \n új sor karakterek, függőleges fül \v a szöveget az alábbi sorra mozgatja. De a \n új sor karakterekkel ellentétben a \v függőleges lap nem indítja el az új sort a nulla oszlopban. Az aktuális oszlopot használja.

a \b backspace karakterek a kurzort egy karakterrel hátra mozgatják. Ha több szöveget kell írni a terminálra, akkor az a szöveg felülírja az előző karaktert.

echo -e "123\b4"

a “3”-ot felülírja a “4”.

a\r carriage return karakter hatására aecho visszatér az aktuális sor elejére, és további szöveget ír a nulla oszlopból.

echo -e "123\r456"

a “123” karaktereket felülírja a “456” karakter.

a \a figyelmeztető karakter hallható ” bleep.”Az alapértelmezett riasztási hangot használja az aktuális témához.

echo -e "Make a bleep\a"

a -n (nincs újsor) opció nem egy backslash-szökött szekvencia, de hatással van a szövegelrendezés kozmetikumaira, ezért itt tárgyaljuk. Megakadályozza, hogy a echo új sort adjon a szöveg végéhez. A parancssor közvetlenül a terminál ablakába írt szöveg után jelenik meg.

echo -n "no final newline"

az echo használata fájlokkal és könyvtárakkal

a echo a ls. A echo használatakor kevés lehetőséged van. Ha bármilyen hűségre vagy finom vezérlésre van szüksége, akkor jobb, ha a ls – t és annak opcióit használja.

Ez a parancs felsorolja az aktuális könyvtár összes fájlját és könyvtárát:

echo *

Ez a parancs felsorolja az összes fájlt és könyvtárat az aktuális könyvtárban, amelynek neve” D”betűvel kezdődik :

echo D*

Ez a parancs felsorolja az összes”.desktop “fájlok az aktuális könyvtárban:

echo *.desktop

Igen. Ez nem a echoerősségeire játszik. Használja ls.

Fájlok írása echo

a kimenetet átirányíthatjuk a echo – ből, és vagy szöveges fájlokat hozhatunk létre, vagy írhatunk meglévő szöveges fájlokba.

Ha a > átirányítási operátort használjuk, akkor a fájl létrejön, ha nem létezik. Ha a fájl létezik, a echo kimenete hozzáadódik a fájl elejére, felülírva minden korábbi tartalmat.

Ha a >> átirányítási operátort használjuk, akkor a fájl létrejön, ha nem létezik. A echo kimenet hozzáadódik a fájl végéhez, és nem írja felül a fájl meglévő tartalmát.

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

az első paranccsal új fájl jön létre, és szöveg kerül bele. A második parancs szövegsort ad a fájl aljára. Acat parancs megjeleníti a fájl tartalmát a terminál ablakában.

természetesen változókat is felvehetünk, hogy hasznos információkat adjunk a fájlunkhoz. Ha a fájl egy naplófájl, érdemes lehet egy időbélyeget hozzáadni hozzá. Ezt megtehetjük a következő paranccsal.

vegye figyelembe az egyetlen idézőjelet a date parancs paraméterei körül. Megakadályozzák, hogy a paraméterek közötti teret a paraméterlista végeként értelmezzék. Ezek biztosítják, hogy a paraméterek a date – nek megfelelően kerüljenek átadásra.

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

a naplófájl jön létre számunkra, és cat megmutatja nekünk, hogy a mindkettő hozzá lett adva.

kapcsolódó: mi az stdin, stdout és stderr Linuxon?

ez az echo repertoárja

egyszerű parancs, de nélkülözhetetlen. Ha nem létezne, nekünk kellene feltalálnunk.

Zeusz shenanigans volt néhány jó, elvégre.



Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.