
Az ismétlődő feladatok automatizálása általában örömet okoz a Bash fejlesztőjének: ahelyett, hogy újra és újra begépelne végtelen parancsokat, a szkript egyszerűen megismétli a munkát. A Bash ideális egy ilyen automatizáláshoz. Ez a sorozat elindítja!
Mi a Bash automatizálás?
A Bash shell egy hatékony Linux shell, amely lehetővé teszi az ismétlődő feladatok mélyreható automatizálását. A Bash Linux shell nemcsak a DevOps, az adatbázis és a tesztmérnökök számára is elsődleges választás, a felhasználók minden nap élvezhetik a lassan elsajátított, folyamatosan növekvő Bash készségeket. A Bash egy szkript és kódoló nyelv is, amely növekszik rajtad. 2012 óta aktívan kódolok a Bash-ban, és sokkal hosszabb ideig használtam.
A Bash számos különféle alkalmazási tartománynak és felhasználási esetnek is megfelel. Például könnyedén felhasználhatja a Big Data kezelésére, és meglepő módon úgy tűnik, hogy a benne található, vagy könnyen telepíthető csomagokként elérhető számtalan szövegfeldolgozó eszköz miatt rendkívül jól alkalmazza ezt a feladatot. Nagyon alkalmas biztonsági mentések és adatbázisok ütemezésére és karbantartására, vagy nagyméretű fájltárolási megoldások kezelésére, a webszerverek automatizálására és még sok minden másra.
Egy dolgot tapasztaltam, hogy valahányszor a következő probléma jelentkezik, egy kis kutatás a keresőmotorban, vagy a különféle Stackoverflow weboldalakon gyorsan nemcsak megoldást kínál a problémára, hanem lehetőséget nyújt a növekedésre és a tanulásra is. Ez egy nagyon hasonló tapasztalat ahhoz, hogy egy személy megtanulja a szerkesztőt vi ahol ugyanaz érvényes; valahányszor jelentkezik egy probléma, a megoldás a közelben van.
Ez a három részből álló minisorozat az első, és ebben megnézzük a Bash automatizálási és szkriptelési alapjait.
Ügy!
Kíváncsi lehet, hogy milyen címről van szó. És igazad lenne, hacsak nem egy tapasztalt Linux fejlesztővel beszélsz. Legjobb esetben elmosolyodnának. Ugyanis egy jól megírt Bash-szkript két első betűje mindig is lenne, nos, Shebang!
Két karakter van, mégpedig #! amelyek egy szkript tetejére helyezhetők, amelyek jelzik a héj számára, hogy mit tud, mit kell és mit kell használniuk a tolmácsnak a kéznél lévő szkript feldolgozásához. Előfordul, hogy ez szimbólum egészét nevezzük Ügy mint egész.
Így bővítve korábbi állításunkat: a jól megírt Bash-szkript első sorának el kell kezdődnie #!/bin/bash jelezni a héjnak (bármilyen héjat is használunk, lehet például bash vagy sh vagy zsh), hogy a binárisat akarjuk /bin/bash (a Bash shellünk) ennek a kódnak a végrehajtásához.
Vegyük át ezt a gyakorlatba egy kis szkript meghatározásával test.sh alábbiak szerint:
#!/bin/bash echo 'Hello CloudSavvyIT Readers!'
Ezt a szkriptet létrehozhatja kedvenc szövegszerkesztőjével, amely lehetőleg egy olyan szerkesztő lenne, amely csak monospace betűtípusokat használ vi, vim, nano vagy valamilyen egyszerű szöveges szerkesztő a Linux asztalon, és lehetőleg kerülje az olyan dolgokat, mint a szövegszerkesztő, például az OpenOffice Writer stb., mivel ezek extra nem kívánt bináris adatokat vagy karaktereket írhatnak a szkriptünkbe. Más szavakkal; sima szöveget kell használnunk.
Miután ezt a szkriptet definiáltuk, futtatással futtathatóvá tesszük chmod +x test.sh a parancssorban. Ezután egyszerűen elindíthatjuk a szkriptet úgy, hogy megnevezzük a név előtagot ./: ./test.sh
![]()
Bemeneti paraméterek
Amint elkezdi írni a szkripteket, valószínűleg rájön, hogy a bemeneti paramétereket át akarja adni a parancsfájlnak. Ennek egyik módja az egyszerű helyzeti paraméterek használata, amelyek alapértelmezés szerint elérhetőek a Bash-ban. Vessünk egy pillantást egy szkriptre test2.sh, amelyet a következőképpen definiálunk:
#!/bin/bash
echo "${1}"
Itt a helyzeti paramétert használtuk ${1}. Ez a változó az első szót tükrözi (alapértelmezés szerint szóközzel elválasztva), amelyet a szkriptünkhöz továbbítottunk, hacsak nem idézőjelet használunk. Lássuk, hogyan működik ez:
![]()
Miután a szkriptünket újra futtathatóvá tettük a chmod +x test2.sh ugyanazt hajtjuk végre, és egyetlen szót adunk át hello első helyzeti paraméterként (${1}). Az eredmény az hello visszhangzik hozzánk.
Ennek oka, hogy a szkript indításakor a változó ${1} (vagy $1 bár azt javaslom, hogy mindig idézőjeleket tegyünk a változónevek köré) az első helyzeti paraméter értékét állítottuk be; az első szó vagy idézett karakterlánc a szkript neve után.
Ezután elhaladtunk hello worldazonban ez csak visszhangzott hello vissza hozzánk. Az ok egyszerűen: a második szót (alapértelmezés szerint szóközzel elválasztva) a második helyzeti paraméterként tekintjük, és így inicializáljuk ${2} a forgatókönyvben nem ${1}.
Megkerültük ezt a viselkedést azzal, hogy idézeteket tettünk a bemenet köré, amikor elhaladtunk 'Hello CloudSavvyIT Readers!'. Az egy- vagy kettős idézetek egyaránt működtek volna, bár működésük eltér, erről többet a sorozat következő részében. Az eredmény az, hogy az első helyzeti paraméterünk ${1} a teljes szövegre van állítva Hello CloudSavvyIT Readers!, és így ugyanaz visszhangzik ránk.
Ha többet szeretne megtudni a változókról, akkor a Bash függvények és helyi változók és Változók exportálása a Bash-ban: a Miért és hogyan cikkek is érdekesek lehetnek.
Csomagolás
Ebben a cikkben áttekintettük a Bash automatizálásának és a szkriptek alapjainak első készletét. Megtanultuk, mi is a Bash automatizálása és a Shebang, és hogyan lehet elkezdeni a bemeneti változók átadását a szkriptjeinknek. A sorozat következő részében a változó idézeteket és még sok mást fogunk megvizsgálni! Maradjon velünk!
