Hogyan kell használni az Echo parancs Linux
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 echo
paramé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\n
karaktereket 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 echo
erő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.