Kako uporabljati funkcije v storitvi Bash s tem računalniškim jezikom, ki temelji na lupini Unixa in je v skladu s sistemom POSIX. Kot jezik je njegova funkcija sestavljena iz interpretacije ukazov za Linux, kar nam omogoča avtomatizacijo ponavljajočih se procesov in ustvarjanje ukazov iz ukazov operacijskega sistema. V tem članku bomo pregledali kako uporabljati funkcije v. Priporočam, da preberete članek kako ustvarite lastne skripte z uporabo bash.
V skriptu, ki ga predlagamo, uporabljamo jezik Bash za iskanje datoteke, pri čemer poznamo njeno ime. Za to bomo uporabili najti ukaz vendar s pomočjo funkcij, ki so bile prej definirane v omenjenem skriptu. Upoštevati morate posebnost ali omejitev Basha, ki ni prisotna v vseh jezikih: če želite poklicati funkcijo, jo je treba definirati prej.
Določite funkcije
Obstajata dva načina za določanje funkcij: z ali brez izjave funkcije:
function nombre_funcion () { # codigo }
ali tega drugega, ki ga uporabljam, kot boste videli kasneje.
nombre_funcion () { # codigo }
Tudi Bash ponuja tudi metodo za posredovanje parametrov in vrnitev rezultatov. kar bomo videli v prihodnjih člankih.
#!/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
Analiza skript
Opredelitve
Za bash vsak postopek, ki se uspešno zaključi, mora imeti kot signal kodo "0". Vrstici 12 in 13 definirata obravnavane kode napak EXIT_OK za uspeh y EXIT_BAD za izhod ob okvari.
V vrsticah 15 in 16 sta spremenljivkama VZOREC in DIRECTORY dodeljena prvi ($ 1) in drugi ($ 2) parametra, ki se pojavita v ukazni vrstici za imenom skripta, kot bomo videli kasneje, ko ga bomo izvedli.
V 18. vrstica ustvarimo svojo prvo funkcijo. Funkcija, imenovana «avtor», prikaže avtorstvo scenarija ko ga pokličemo z argumentom "-a", kot lahko vidite v vrstici if v vrsticah 50 ~ 54. Argument "-and" od vrstice 23 omogoča prikaz zaporedja «naslednje vrstice» s kodiranjem «\ n».
Klic noparams (vrstice 28 ~ 37) je odgovoren za upravljanje dogodkov, ki se morajo zgoditi, ko je skript poklican brez kakršnih koli parametrov. Prikaže se, pravilno zaprto med novimi kodami vrstic, sporočilo, da je treba skript izvesti z dvema parametroma, nato pa je prikazana možnost (vrstica 31) za uporabo preberite V primeru, da želite prikazati pomoč, morate pritisniti "S" ali "s". V vrstici 32 dobesedno rečemo: "če je odgovor (ki pride do nas v spremenljivki $ ODGOVOR) vsebuje katerega koli znaka, ki je velik ali majhen ', nato (vrstica 33) prikaže prazno vrstico (vrstica 34) in izvede funkcijo pomoči (vrstice 23 ~ 26).
Funkcija nodir (vrstice 39 ~ 42) se bo izvedla, ko bomo zaznali, da imenik, v katerem se išče iskanje, ne obstaja.
Funkcionalnost
S tem že imamo definiral vse potrebne funkcije za zagon našega programa, ki se dejansko začne v vrstici 44, preverjanje, ali je prvi od parametrov, ki jih prejme skript, "-h", če je res, zaženite funkcijo pomoči in izhodi, ki kažejo na normalno prekinitev.
Če je VZOREC (prvi parameter, kot je opisan v vrstici 15), "-a", se avtor prikaže po enakem mehanizmu, kot je razložen v prejšnjem odstavku za možnost "-h".
Na zvezi 56 je nadzorovano, da nismo prejeli manj kot dveh parametrovV tem primeru se izvede funkcija noparams, nato pa v vrstici 60 to ugotovimo če obstaja imenik, v katerem želimo iskati, če obstaja, je prikazana prazna vrstica, najti ukaz z naslovom imenika, v katerem želimo izvesti iskanje, ki mu sledi vzorec (začetek imena datoteke, ki jo iščemo), nova prazna vrstica in s pomočjo zapustiti $? rezultat našega skripta zaupamo rezultatu, ki ga je ustvaril find. V primeru, da je stanje obstoj imenika je napačen (vrstica 67) pokličemo funkcijo nodir in izstopimo, kar kaže na nenormalno prekinitev.
Izvedba in testiranje
$ encontrar $ encontrar -a $ encontrar -h $ encontrar index aljflaskjf #directorio no existe $ encontrar index public_html $
En naslednjih člankov o Bashu videli bomo mehanizme za uporaba parametrov v funkcijahBomo videli tudi kako artikulirani podatki o vrnitvi od istega.
Upam in upam, da je bila ta objava koristna za vas.
Pozdravljeni,
zelo zanimivo in zelo jasno.
Samo opomba; v vrstici 68 pred spremenljivko EXIT_BAD manjka $.
Z vašimi članki se bom še naprej učil zagotovo.