Programozás a bash-ban - 3. rész

hogy biztonságos mi fogalmak Megtanulunk 2 nagyon hasznos programozási eszközt, amelyek tökéletesen működnek a Bash-ban. Tanulj meg alkotni függvények és határozza meg csővezetékek eleinte összetettnek tűnhet, de aztán meglátjuk a hatalmasat hasznosság hogy biztosítanak nekünk.

Cső

Konkrétan, és anélkül, hogy túl sok fordulatot tenne, a csővezeték olyan módszer, amely lehetővé teszi az egyik folyamat kimenetének a másik bemeneteként történő irányítását, amely számos előnyt tesz lehetővé, mint például a kódsorok csökkentése, a tárolási változóktól való eltekintés az eredmények érdekében és a javítás a szkript hatékonysága.

A csövet általában a | szimbólum ismeri fel amely lehetővé teszi a kifejezések összefűzését; Bár alapértelmezés szerint használják, vannak más módszerek is a csövek létrehozására.

Példa: a legutóbbi kernelüzenetek nyomtatása

A #dmesg segítségével megtekintheti a legutóbbi kernelüzeneteket és a betöltött illesztőprogramokat. # a rendszer indítása során; a tail kinyomtatja a fájl vagy a #parancs utolsó részeit

dmesg | farok

Bár bonyolultak lehetnek, amennyire csak akarjuk, a csővezeték alapstruktúrája lehetővé teszi az egyik parancs eredményének felhasználását bemenetként a következőhöz, amely inputot adhat egy új parancshoz, ha folyamatosan egymás után következő csöveket adunk hozzá.

funkciók

A függvények olyan utasítások halmaza, amelyek úgy vannak csoportosítva, hogy többször is végrehajthatók anélkül, hogy újra kellene írni őket. Ez egyenértékű azzal a gondolkodással, hogy amikor megtanulunk egyfajta ételt főzni, akkor a receptjét felírjuk egy lapra, és minden alkalommal, amikor azt az ételt szeretnénk elkészíteni, konzultálunk a recepttel, ahelyett, hogy új lapot írnánk ugyanazzal a recepttel.

Talán a legfontosabb dolog a függvényekben a paraméterek, adatok továbbításának lehetősége, amelyeket fel fognak használni a feldolgozásukhoz és a kimenet generálásához. Szerkezete a következő:

function function-name {

folyamatok

}

Példa: a tcp protokollon működő szolgáltatásokat bemutató függvény. Azt is láthatjuk, hogyan kell több csövet felhelyezni.

# Megadunk egy függvénynevet, ez lehet az, ami tetszik.

függvény services_tcp {

A #cat összefűzi és megjeleníti az / etc / services mappa tartalmát, amely # az összes szolgáltatást tartalmazza a hozzájuk tartozó portokkal.

# az első grep átveszi a listát és eltávolítja a megjegyzéseket, a –v gombbal megfordítjuk az eredményt

# a második grep csak a tcp-vel kapcsolatosakat mutatja

macska / etc / services | grep –v "^ #" | grep tcp

}

Amikor ezt a függvényt végre kell hajtanunk, csak a nevén kell hívnunk:

tcp_szolgáltatások

Ebben az esetben paraméterek nélkül működik; Abban az esetben, ha vannak, hozzá kell adnunk őket, hogy a funkció megfelelően működjön, különben a funkció nem fog megfelelően működni. A return használata lehetővé teszi egy függvény számára, hogy a folyamat eredményeként visszaadjon egy értéket.

Példa: függvény bemeneti paraméterekkel, amely kiszámítja 2 szám összegét.

#! / bin / bash
függvényösszeg ()
{
# let-vel végre tudjuk hajtani a műveletet az idézőjelek között
legyen "eredmény = $ 1 + $ 2"

A #return lehetővé teszi az egész szám visszaadását. A visszatérés végrehajtása után az érték a $? Változóba kerül.
return $ eredmény;
}
 
# Az összeg függvény meghívásra kerül, és 2 bemeneti paramétert adunk át.

adjunk hozzá 2 3

# kinyomtatja a $ értékét? a változó tényleges értékének idézőjeles kiértékelésével
echo -e "Eredmény = $?";

<< Ugrás az előző részre

Köszönöm Juan Carlos Ortiz!


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.   Nill mutató dijo

    Nem vagyok biztos benne, de a függvények return utasítását csak arra használjuk, hogy egy egész számot 0 és 255 között adja vissza, mint például az "exit" hibakódokat, általában 0, ha minden rendben van, és egy másik számot a többi esetre. Bár a példában ez működik, nem gondolom, hogy jó gyakorlat az eredményt visszatérítéssel visszaadni.
    Ott hülyeséget mondok huh! szem! Ha!

  2.   johnk dijo

    Az igazság kételyeket hagyott bennem. Mindenesetre a függvényekkel kapcsolatos problémák elkerülése érdekében a visszatérést visszhangra cserélhetjük abban az esetben, ha a függvény értéket vagy karakterláncot kíván visszaadni vagy kinyomtatni.

  3.   Abel S. Nagy hegy dijo

    Igaz, ennek megoldására használhatja a bc parancsot, az összeg függvényben pedig: eredmény = `echo $ 1 + $ 2 | bc -ql "

  4.   Luis Miguel dijo

    Jó,

    Szeretném tudni, hova menthetem a bash fájlokat, hogy azok egész rendszeren futjanak, és ez nem a bin könyvtár, hanem a biztonsági másolatok készítésének otthona lehet.

    Köszönet és üdvözlettel.

  5.   Joaquin dijo

    Köszönöm szépen, a forgatókönyvekkel kezdem, és az az igazság, hogy ez nagyon hasznos, nagyon szívesen megosztja tudását!
    Üdvözlet

    1.    használjuk a linuxot dijo

      Köszönöm! Ölelés!
      Pablo

  6.   CRISTHIAN dijo

    Szintaxis hiba: "(" váratlan
    Hiba jelentkezik a példa futtatásakor, pontosan ugyanúgy másoltam

    Mi lehet? én az ubuntun vagyok 14.10