Jinsi ya kutumia kazi katika Bash

Jinsi ya kutumia kazi katika Bash ukitumia lugha hii ya kompyuta inayotumia ganda la Unix, inayotumia POSIX. Kama lugha, kazi yake ina tafsiri ya maagizo ya Linux, ikituwezesha kufanya michakato yetu ya kurudia na pia kuunda amri kutoka kwa amri za mfumo wa uendeshaji. Katika nakala hii tutakagua jinsi ya kutumia kazi katika bash. Ninapendekeza kusoma nakala jinsi tengeneza hati zako mwenyewe ukitumia bash.

Katika hati ambayo tunapendekeza, tunatumia lugha ya Bash kutafuta faili, tukijua jina lake. Kwa hili tutatumia pata amri lakini kwa msaada wa kazi zilizofafanuliwa hapo awali katika hati iliyosemwa. Lazima uzingatie upekee au ukomo wa Bash ambayo haipo katika lugha zote: kuita kazi lazima ifafanuliwe hapo awali.

Fafanua kazi

Kuna njia mbili za kufafanua kazi: pamoja na au bila tamko la kazi:

function nombre_funcion () 
{
    # codigo
}

au hii nyingine, ambayo ndiyo ninayotumia kama utakavyoona baadaye.

nombre_funcion ()
{
    # codigo
}

Pia Bash pia hutoa njia ya kupitisha vigezo na kurudisha matokeo. ambayo tutaona katika nakala zijazo.

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


Uchambuzi wa hati

Ufafanuzi

Kwa bash kila mchakato uliokamilishwa kwa mafanikio lazima uwe na nambari "0" kama ishara. Mistari ya 12 na 13 hufafanua nambari za makosa zilizoshughulikiwa EXIT_OK kwa mafanikio y EXIT_BAD kwa kuondoka kwa kutofaulu.

Katika mistari ya 15 na 16, vigeuzi vya PATTERN na DIRECTORY vinapewa vigezo vya kwanza ($ 1) na vya pili ($ 2) ambavyo vinaonekana kwenye mstari wa amri baada ya jina la hati, kama tutakavyoona baadaye tunapoifanya.

Katika mstari wa 18 tunaunda kazi yetu ya kwanza. Kazi inayoitwa «mwandishi» huonyesha uandishi wa maandishi tunapoiita na hoja ya "-a" kama unavyoona katika if ikiwa kwenye mistari 50 ~ 54. Hoja "-na" kutoka mstari wa 23 inaruhusu kuonyesha mlolongo wa «mstari unaofuata» kwa kusimba «\ n».

Simu kwa noparams (mistari 28 ~ 37) inasimamia kusimamia hafla ambazo zinapaswa kutokea wakati hati inaitwa bila vigezo vyovyote. Tunaonyesha iliyofungwa vizuri kati ya nambari mpya za laini, ujumbe unaoonyesha kuwa hati lazima ifanyike na vigezo viwili, kisha chaguo (laini ya 31) inaonyeshwa kutumia kusoma Inakusukuma kubonyeza "S" au "s" ikiwa unataka kuonyesha msaada. Katika mstari wa 32 tunasema kweli: 'ikiwa jibu (linatuletea kwa kutofautisha $ JIBUina herufi yoyote inayotumia herufi kubwa au ndogo ', halafu (mstari wa 33) inaonyesha laini tupu (mstari 34) na hufanya kazi ya usaidizi (mistari 23 ~ 26).

Kazi ya nodir (mistari 39 ~ 42) itatekelezwa wakati tutagundua kuwa saraka ambayo utaftaji unajaribu haipo.

Kazi

Na hii tayari tunayo ilifafanua kazi zote muhimu kutekeleza programu yetu, ambayo kwa kweli huanza kwenye laini ya 44, kuangalia ikiwa ya kwanza ya vigezo ambavyo hati inapokea ni "-h", ikiwa ni kweli, fanya kazi ya usaidizi na hutoka ikionyesha kukomesha kawaida.

Ikiwa PATTERN (parameter ya kwanza kama ilivyoelezewa katika mstari wa 15) ni "-a", mwandishi huonyeshwa akifuata utaratibu ule ule ulioelezewa katika aya iliyotangulia ya chaguo la "-h".

Kwenye mstari 56 inadhibitiwa kuwa hatujapokea chini ya vigezo viwiliKatika kesi hii, kazi ya noparams inatekelezwa, basi, ikiwa ya mstari wa 60 tunajua ikiwa saraka ambayo tunataka kufanya utaftaji ipo, ikiwa iko, laini tupu inaonyeshwa, pata amri na anwani ya saraka ambayo tunataka kufanya utaftaji ikifuatiwa na muundo (mwanzo wa jina la faili tunayotafuta) laini mpya tupu na kutumia toka $? tunakabidhi pato la hati yetu kwa matokeo yaliyotokana na kupata. Ikiwa hali ya kuwepo kwa saraka ni ya uwongo (mstari 67) tunapiga simu kwa kazi ya nodir na tunatoka kuonyesha kukomesha kwa kawaida.

Utekelezaji na upimaji

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

En makala zinazofuata kuhusu Bash tutaona mifumo ya tumia vigezo katika kaziTutaona pia jinsi ya kufanya eleza data ya kurudi kutoka sawa.

Natumai na natumahi kuwa chapisho hili limekufaa.


Yaliyomo kwenye kifungu hicho yanazingatia kanuni zetu za maadili ya uhariri. Kuripoti kosa bonyeza hapa.

Maoni, acha yako

Acha maoni yako

Anwani yako ya barua si kuchapishwa.

*

*

  1. Kuwajibika kwa data: Miguel Ángel Gatón
  2. Kusudi la data: Kudhibiti SpAM, usimamizi wa maoni.
  3. Uhalali: Idhini yako
  4. Mawasiliano ya data: Takwimu hazitawasilishwa kwa watu wengine isipokuwa kwa wajibu wa kisheria.
  5. Uhifadhi wa data: Hifadhidata iliyohifadhiwa na Mitandao ya Occentus (EU)
  6. Haki: Wakati wowote unaweza kupunguza, kuokoa na kufuta habari yako.

  1.   Yosefu alisema

    Hello,
    ya kuvutia sana na ya wazi sana.
    Ujumbe tu; $ inakosekana kwenye laini ya 68 mbele ya anuwai ya EXIT_BAD.
    Nitaendelea kujifunza hakika na nakala zako.