Bash Hogyan kell végrehajtani egy parancsot egy változóban?
On november 22, 2021 by adminA Bash szkripteket sokféleképpen lehet létrehozni, és a legtöbben ismerjük az egyszerű parancsok végrehajtását egy Bash szkriptben. Ezek a parancsok azonban a Bash változókon belül is kapszulázhatók. Ezt a folyamatot parancshelyettesítésnek nevezik, és általában arra használják, hogy egy parancs kimenetét egy változóban tárolják, így nem kell újra és újra explicit módon futtatni a parancsot, hanem egyszerűen hozzáférhetünk a változóhoz, hogy bármikor megkapjuk a parancs kimenetét. Ebben a cikkben megmutatjuk, hogyan lehet ezt megtenni.
Megjegyzés: Az alábbiakban bemutatott összes forgatókönyvet Ubuntu 20.04 rendszeren hajtottuk végre. Azonban pontosan ugyanúgy működnek a Linux bármely más ízével is.
Változóban lévő parancs végrehajtásának módszere a Bashben:
A változóban lévő parancs végrehajtásának módszerének bemutatásához a Bashben három különböző forgatókönyvet mutatunk be, amelyek a következők:
Változóban tárolt “echo” parancs végrehajtása:
Ez a legegyszerűbb forgatókönyv, amelyben a célunk a változóban tárolt echo parancs végrehajtása. Ahhoz, hogy ez megtörténjen, az alábbiakban említett lépéssorozatot kell követnünk:
1. lépés: Bash script létrehozása:
El kell hoznia egy Bash Scriptet a Home mappában, amihez a File Manager ikonra kell kattintania, ahogy az alábbi képen látható:
Most keressen egy tetszőleges helyet a Home mappában, és kattintson rá a jobb gombbal a menü elindításához. Ebből a menüből válassza az Új dokumentum opciót, majd az almenüből válassza az Üres dokumentum opciót. Ezzel egy új dokumentumot hoz létre a Home mappában. Most nevezze át ezt az újonnan létrehozott dokumentumot tetszőleges névvel, amelyet a .sh kiterjesztés követ. Esetünkben CommandVar.sh.
A Bash-szkript írásához ebben a fájlban duplán kattintson rá a megnyitásához, majd írja be az alábbi képen látható szkriptet a Bash-fájljába. Itt a szkript első sora, azaz a “#!/bin/bash” mutatja, hogy ez a fájl valójában egy Bash fájl. Ezután létrehoztunk egy “test” nevű változót, és hozzáadtuk a “$(echo “Hi there!”)” értéket. Amikor a parancsot egy változóban akarjuk tárolni, akkor azt a parancsot egy “$” szimbólummal megelőzve kell beírnunk. Ebben az esetben az “echo” parancsot akartuk tárolni a “test” változóban, ezért egyszerűen beírtuk az “echo” parancsot, amelyet egy véletlenszerű üzenet követ, majd kerek zárójelek közé zártuk, és egy “$” szimbólumot helyeztünk elé. Így most, ha végre akarjuk hajtani ezt az “echo” parancsot, akkor a “test” változóhoz kell hozzáférnünk. Ezért, hogy ellenőrizzük, hogy a “test” változóban tárolt “echo” parancs sikeresen végrehajtható-e vagy sem, egy másik “echo” parancs segítségével kiírtuk a “test” változó kimenetét a terminálra. A szkript beírása után el kell menteni a fájlt, és be kell zárni.
2. lépés: A Bash-szkript végrehajtása a terminálon keresztül:
Most a szkriptet a terminálon keresztül kell végrehajtani. Nyissa meg tehát a terminált az Ubuntu 20.04 rendszerben, majd írja be a következő parancsot:
Amikor a parancs végrehajtásához megnyomja az Enter billentyűt, a következő kimenetet fogja látni a terminálon. Itt a kimenet kiemelt része a “teszt” változóban tárolt “echo” parancs kimenete.
Változóban tárolt “seq” parancs végrehajtása:
Ebben a forgatókönyvben egy változóban tárolt “seq” parancs segítségével egy számsorozatot fogunk kiírni. Ennek előidézéséhez a fent létrehozott Bash-szkriptet a következő lépések végrehajtásával módosítjuk:
1. lépés: A fent létrehozott Bash-szkript módosítása:
Nyissa meg a fenti módszerrel létrehozott Bash-fájlt, és írja bele a következő szkriptet. Itt létrehoztunk egy “sequence” nevű változót. Célunk, hogy a “seq” parancs használata közben kiírjuk az 1-től 10-ig terjedő számokat. Ehhez a “sequence” változóhoz a “$(seq 1 10)” értéket rendeltük. Ha akarjuk, más tetszőleges számtartományt is megadhatunk. A “seq” parancs utáni első szám a szekvencia alsó határát, míg a második szám a felső határát jelöli. A szkript beírása után mentse el a fájlt, és zárja be.
2. lépés: A módosított Bash-szkript végrehajtása a terminálon keresztül:
Futtassa most a Bash-szkriptet a fent ismertetett módon, és az alábbi képen látható módon láthatja a megadott szekvenciát a terminálon:
Változóban tárolt “pwd” parancs végrehajtása:
A változóban tárolt “pwd” parancsot felhasználva kiírhatja a munkakönyvtárát is. Ennek bemutatásához a fent létrehozott Bash szkriptet módosítjuk még egyszer az alábbiakban említett lépésekkel:
1. lépés: A fent létrehozott Bash szkript módosítása:
Nyissuk meg az imént módosított Bash fájlt, majd írjuk bele az alábbi képen látható szkriptet. Ebben a szkriptben létrehoztunk egy “working_directory” nevű változót, és hozzáadtuk a “$(pwd)” értéket. A “pwd” parancs egyszerűen a kimenetét, azaz az aktuális munkakönyvtárat tárolja a “working_directory” változóban. Annak ellenőrzésére, hogy a “pwd” parancs helyesen lett-e végrehajtva vagy sem, az “echo” parancs segítségével kiírtuk a “working_directory” változó értékét a terminálra. Most mentsük el ezt a fájlt, majd zárjuk be, miután beírtuk a módosított Bash-szkriptet.
2. lépés: A módosított Bash-szkript végrehajtása a terminálon keresztül:
Most hajtsuk végre ezt a Bash-szkriptet ugyanúgy, ahogy azt fentebb elmagyaráztuk. Ennek a Bash szkriptnek a kimenete megmutatja az aktuális munkakönyvtárat. A kimenet kiemelt része valójában a “pwd” parancs kimenete.
Következtetés:
Ez a cikk nagyon jó képet ad arról, hogyan lehet a Bashben egy változóban tárolt parancsot végrehajtani, és ugyanazt a kimenetet kapni, mint amit akkor kaptunk volna, ha a parancsot önállóan futtatjuk.
Vélemény, hozzászólás?