Hvernig á að nota aðgerðir í Bash

Hvernig á að nota aðgerðir í Bash með því að nota þetta Unix skel byggt, POSIX-samhæft tölvutungumál. Sem tungumál samanstendur hlutverk þess af túlkun á Linux skipunum, sem gerir okkur kleift að gera sjálfvirkar endurtekningarferli okkar og búa einnig til skipanir úr stjórnkerfisskipunum. Í þessari grein munum við fara yfir það hvernig á að nota aðgerðir í bash. Ég mæli með að lesa greinina hvernig búðu til þín eigin handrit með því að nota bash.

Í handritinu sem við leggjum til notum við tungumál Bash til að leita að skrá, vitandi nafn hennar. Fyrir þetta munum við nota finna stjórn en með hjálp aðgerðanna sem áður voru skilgreindar í nefndu handriti. Þú verður að taka tillit til sérkennis eða takmarkana á Bash sem ekki er til staðar á öllum tungumálum: að kalla aðgerð verður að skilgreina áður.

Skilgreindu aðgerðir

Það eru tvær leiðir til að skilgreina aðgerðir: með eða án aðgerðaryfirlýsingar:

function nombre_funcion () 
{
    # codigo
}

eða þessi önnur, sem er sú sem ég nota eins og þú munt sjá síðar.

nombre_funcion ()
{
    # codigo
}

Einnig Bash býður einnig upp á aðferð til að standast breytur og skila árangri. sem við munum sjá í greinum í framtíðinni.

#!/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


Greining handrita

Skilgreiningar

Fyrir bash hvert ferli sem lokið er verður að hafa kóðann „0“ sem merki. Línur 12 og 13 skilgreina villukóða sem meðhöndlaðir eru EXIT_OK til að ná árangri y EXIT_BAD til að hætta við bilun.

Í línum 15 og 16 eru breytur PATTERN og DIRECTORY úthlutaðar fyrstu breytunum ($ 1) og annarri ($ 2) sem birtast á stjórnlínunni á eftir heiti handritsins, eins og við munum sjá síðar þegar við framkvæmum það.

Í lína 18 við búum til okkar fyrstu aðgerð. Aðgerðin sem kallast «höfundur» sýnir handritshöfundar þegar við köllum það með „-a“ rökunum eins og þú sérð í ef á línum 50 ~ 54. Rökin "-og" frá línu 23 leyfir þér að sýna röðina af «næstu línu» með því að kóða «\ n».

Símtalið til noparams (línur 28 ~ 37) sér um að stjórna þeim atburðum sem verða að eiga sér stað þegar hringt er í handritið án nokkurra breytna. Við sýnum, rétt lokað á milli nýrra línukóða, skilaboð sem gefa til kynna að skriftina verði að framkvæma með tveimur breytum, þá er sýndur valkostur (lína 31) til að nota lesa Það biður þig um að ýta á „S“ eða „s“ ef þú vilt sýna hjálp. Í línu 32 segjum við bókstaflega: „ef svarið (sem kemur okkur í breytunni $ SVARA) inniheldur einhverja af stöfunum sem eru með hástöfum eða lágstöfum ', þá sýnir (lína 33) tóma línu (lína 34) og framkvæmir hjálparaðgerðina (línur 23 ~ 26).

Aðgerðin nodir (línur 39 ~ 42) verður framkvæmd þegar við uppgötum að skráasafnið þar sem leitað er að er ekki til.

Virkni

Með þessu höfum við þegar skilgreint allar nauðsynlegar aðgerðir til að framkvæma forritið okkar, sem raunverulega byrjar á línu 44, athuga hvort fyrsta breyturnar sem handritið fær er „-h“, ef það er satt, framkvæma hjálparaðgerðina og útgönguleiðir sem gefa til kynna eðlilega uppsögn.

Ef MYNSTUR (fyrsta færibreytan eins og lýst er í línu 15) er „-a“, birtist höfundur eftir sama kerfi og útskýrt var í fyrri málsgrein fyrir „-h“ valkostinn.

Á línunni 56 er stjórnað að við höfum ekki fengið minna en tvær breyturÍ þessu tilfelli er noparams aðgerðin framkvæmd, þá, ef í línu 60 sem við komumst að ef skráin sem við viljum leita að er til, ef hún er til, er auð lína sýnd, finna stjórn með heimilisfangi skráasafnsins sem við viljum framkvæma leitina á eftir mynstri (upphaf nafns skjalsins sem við erum að leita að) nýja tóma línu og nota hætta $? við felum framleiðslu handritsins niðurstöðuna sem framleidd er með fundi. Ef ástandið á tilvist skráasafnsins er röng (lína 67) við hringjum í nodir aðgerðina og við förum út sem gefur til kynna óeðlilega uppsögn.

Framkvæmd og prófanir

$ encontrar
$ encontrar -a
$ encontrar -h
$ encontrar index aljflaskjf #directorio no existe
$ encontrar index public_html
$

En eftir greinum um Bash við munum sjá fyrirkomulagið fyrir nota breytur í föllumVið munum líka sjá hvernig á að gera mótað skilagögn frá því sama.

Ég vona og vona að þessi færsla hafi nýst þér vel.


Innihald greinarinnar fylgir meginreglum okkar um siðareglur ritstjórnar. Til að tilkynna um villu smelltu hér.

Athugasemd, láttu þitt eftir

Skildu eftir athugasemd þína

Netfangið þitt verður ekki birt. Nauðsynlegir reitir eru merktir með *

*

*

  1. Ábyrgðarmaður gagna: Miguel Ángel Gatón
  2. Tilgangur gagnanna: Control SPAM, umsögn stjórnun.
  3. Lögmæti: Samþykki þitt
  4. Samskipti gagna: Gögnunum verður ekki miðlað til þriðja aðila nema með lagalegri skyldu.
  5. Gagnageymsla: Gagnagrunnur sem Occentus Networks (ESB) hýsir
  6. Réttindi: Hvenær sem er getur þú takmarkað, endurheimt og eytt upplýsingum þínum.

  1.   Josea sagði

    Halló,
    mjög áhugavert og mjög skýrt.
    Bara athugasemd; a $ vantar á línu 68 fyrir framan breytuna EXIT_BAD.
    Ég mun halda áfram að læra fyrir vissu með greinum þínum.