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 = $?";
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!
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.
Igaz, ennek megoldására használhatja a bc parancsot, az összeg függvényben pedig: eredmény = `echo $ 1 + $ 2 | bc -ql "
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.
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
Köszönöm! Ölelés!
Pablo
Szintaxis hiba: "(" váratlan
Hiba jelentkezik a példa futtatásakor, pontosan ugyanúgy másoltam
Mi lehet? én az ubuntun vagyok 14.10