A bash függvényeinek használata

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.

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.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.

  1.   josea dijo

    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.