A Bash függvényeinek használata a Unix shell-alapú, POSIX-kompatibilis számítógépes nyelv használatával. Nyelvként funkciója a Linux parancsok értelmezéséből áll, lehetővé téve számunkra az ismétlődő folyamatok automatizálását és parancsok létrehozását az operációs rendszer parancsaiból is. Ebben a cikkben áttekintjük hogyan használjuk a bash függvényeket. Azt javaslom, olvassa el a cikket, hogyan készítsen saját szkripteket a bash használatával.
Az általunk javasolt szkriptben a Bash nyelvet használva keresünk egy fájlt, ismerve annak nevét. Ehhez a megtalálja a parancsot hanem az említett szkriptben korábban definiált függvények segítségével. Figyelembe kell vennie a Bash sajátosságait vagy korlátait, amelyek nincsenek minden nyelven: függvény hívásához meg kell határozni korábban.
Index
Határozza meg a függvényeket
Kétféle módon definiálhatjuk a függvényeket: a funkció deklarációjával vagy anélkül:
function nombre_funcion () { # codigo }
vagy ez a másik, amit használok, amint később látni fogod.
nombre_funcion () { # codigo }
is A Bash a paraméterek átadására és az eredmények visszaadására is módszert biztosít. hogy a későbbi cikkekben látni fogjuk.
#!/usr/bin/env bash # ~/.bin/encontrar # encuentra archivos a partir de la descripción de su nombre en un directorio específico # # Por Pedro Ruiz Hidalgo # version 1.0.0 # Copyright © enero 2017 # # EXIT_OK=0 EXIT_BAD=66 PATRON=$1 DIRECTORIO=$2 autor () { echo -e "\nPedro Ruiz Hidalgo @petrorum. Copyright © 2017\n" } ayuda () { echo -e "\nencontrar [PATRON] [DIRECTORIO]\n" } noparams () { echo -e "\nSon necesarios dos parámetros\nencontrar -h para ayuda\n" read -p "¿Quieres ver la ayuda? (S|s)" -n 1 -r if [[ $REPLY =~ ^[Ss]$ ]]; then echo "" ayuda fi } nodir () { echo -e "\nDirectorio no Existe\n" } if [[ $PATRON == "-h" ]]; then ayuda exit $EXIT_OK fi if [[ $PATRON == "-a" ]]; then autor exit $EXIT_OK fi if [ $# -lt 2 ]; then noparams else if [ -d $DIRECTORIO ]; then echo "" find $DIRECTORIO -name $PATRON* echo "" exit $? else nodir exit EXIT_BAD fi fi
Script elemzés
Fogalommeghatározások
Mert bash minden sikeresen befejezett folyamatnak jelként a "0" kódot kell tartalmaznia. A 12. és 13. sor meghatározza a kezelt hibakódokat EXIT_OK a sikerért y EXIT_BAD a kilépéshez hiba esetén.
A 15. és 16. sorban a PATTERN és DIRECTORY változókhoz hozzárendelik az első ($ 1) és a második ($ 2) paramétereket, amelyek a parancssoron jelennek meg a parancsfájl neve után, amint később látni fogjuk, amikor végrehajtjuk.
Az 18. sor létrehozzuk az első függvényünket. A «szerző» nevű függvény megjeleníti a forgatókönyv szerzősége amikor az "-a" argumentummal hívjuk, amint az az 50 ~ 54. A vita "-és" a 23. sorból lehetővé teszi a «következő sor» sorozatának megjelenítését a «\ n» kódolásával.
A noparams (28 ~ 37. sor) hívása az események kezeléséért felel, amelyeknek akkor kell bekövetkezniük, ha a szkriptet paraméterek nélkül hívják meg. Megjelenítjük, megfelelően beillesztve az új vonalkódok közé, egy üzenetet, amely jelzi, hogy a szkriptet két paraméterrel kell végrehajtani, majd egy opció (31. sor) jelenik meg olvas Arra kéri, hogy nyomja meg az "S" vagy az "s" gombot, ha segítséget szeretne mutatni. A 32. sorban szó szerint azt mondjuk: "ha a válasz (ez a változóban érkezik hozzánk $ VÁLASZ) a nagy- vagy kisbetűk bármelyikét tartalmazza, majd a (33. sor) egy üres sort mutat (34. sor), és végrehajtja a súgó funkciót (23–26. sor).
A nodir függvény (39–42. Sor) akkor fog végrehajtódni, ha észleljük, hogy a könyvtár, ahol a keresést megkísérlik, nem létezik.
alkalmassága
Ezzel már megvan meghatározta az összes szükséges funkciót futtatni a programunkat, amely valójában a 44. sorból indul, ellenőrizve, hogy a szkript által kapott paraméterek közül az első "-h", ha igaz, hajtsa végre a súgó függvényt, és normál befejezést jelző kilépések.
Ha a PATTERN (az első paraméter a 15. sorban leírtak szerint) "-a", akkor a szerző megjelenik az előző bekezdésben a "-h" opcióra kifejtett mechanizmust követve.
A vonalon Ellenőrzik, hogy nem kaptunk-e kettőnél kevesebb paramétertEbben az esetben a noparams függvényt hajtjuk végre, majd a 60. sor if-jében megtudjuk ha létezik az a könyvtár, amelyen keresni szeretnénk, ha létezik, akkor egy üres sor jelenik meg, a megtalálja a parancsot annak a könyvtárnak a címével, amelyen keresni akarunk, majd a mintával (a keresett fájl nevének elejével) egy új üres sort és kilép $? a script kimenetét a find által előállított eredményre bízzuk. Abban az esetben, ha a a könyvtár létezése hamis (67. sor) meghívjuk a nodir függvényt és rendellenes befejezést jelezve kilépünk.
Végrehajtás és tesztelés
$ encontrar $ encontrar -a $ encontrar -h $ encontrar index aljflaskjf #directorio no existe $ encontrar index public_html $
En következő cikkek a Bash-ról meglátjuk a mechanizmusait paraméterek használata a függvényekbenAzt is meglátjuk, hogyan kell megfogalmazza a visszatérési adatokat ugyanattól.
Remélem és remélem, hogy ez a bejegyzés hasznos volt az Ön számára.
Hozzászólás, hagyd a tiedet
Helló,
nagyon érdekes és nagyon világos.
Csak egy jegyzet; egy $ hiányzik a 68-as sorból az EXIT_BAD változó előtt.
A cikkekkel továbbra is biztosan tanulok.