Ungayisebenzisa kanjani imisebenzi eBash

Ungayisebenzisa kanjani imisebenzi ku-Bash usebenzisa lolu limi lwekhompiyutha olusebenza nge-Unix, olusebenza nge-POSIX. Njengolimi, umsebenzi walo uqukethe ukuhunyushwa kwemiyalo ye-Linux, esivumela ukuthi sisebenzise izinqubo zethu eziphindaphindwayo futhi senze nemiyalo evela kumiyalo yohlelo lokusebenza. Kulesi sihloko sizobuyekeza ungayisebenzisa kanjani imisebenzi ku-bash. Ngincoma ukufunda i-athikili ukuthi kanjani dala imibhalo yakho usebenzisa i-bash.

Kumbhalo esiwuphakamisayo, sisebenzisa ulimi lweBash ukucinga ifayela, sazi igama lalo. Kulokhu sizosebenzisa i- thola umyalo kepha ngosizo lwemisebenzi echazwe ngaphambilini kuskripthi esishiwoyo. Kufanele ucabangele ukucaca noma umkhawulo weBash ongekho kuzo zonke izilimi: ukubiza umsebenzi kufanele kuchazwe ngaphambili.

Chaza imisebenzi

Kunezindlela ezimbili zokuchaza imisebenzi: ngesimemezelo somsebenzi noma ngaphandle kwaso:

function nombre_funcion () 
{
    # codigo
}

noma lokhu okunye, okuyiyona engiyisebenzisayo njengoba uzobona kamuva.

nombre_funcion ()
{
    # codigo
}

Futhi IBash ibuye inikeze indlela yokudlulisa amapharamitha nemiphumela yokubuyisa. lokho sizokubona ezihlokweni ezizayo.

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


Ukuhlaziywa kweskripthi

Izincazelo

Okwe-bash yonke inqubo eqediwe ngempumelelo kufanele ibe nekhodi engu- “0” njengesiginali. Imigqa 12 no-13 ichaza amakhodi ephutha aphethwe EXIT_OK impumelelo y I-EXIT_BAD yokuphuma ekuhlulekeni.

Kumigqa 15 no-16, okuguquguqukayo kwe-PATTERN ne-DIRECTORY kunikezwa imingcele yokuqala ($ 1) neyesibili ($ 2) evela kulayini womyalo ngemuva kwegama lesikripthi, njengoba sizobona kamuva lapho siwenza.

Ku umugqa 18 sakha umsebenzi wethu wokuqala. Umsebenzi obizwa ngokuthi «umbhali» ukhombisa ifayela le- ukubhala umbhalo lapho sikubiza ngengxabano "-a" njengoba ubona ku-if kulayini abangama-50 ~ 54. Impikiswano "-nje" kusuka kulayini 23 ivumela ukukhombisa ukulandelana kwe- «umugqa olandelayo» ngokufaka ikhodi «\ n».

Ucingo oluya kuma-noparams (imigqa 28 ~ 37) luphethe ukuphatha imicimbi okumele yenzeke lapho iskripthi sibizwa ngaphandle kwemingcele. Sikhombisa okuvalelwe kahle phakathi kwamakhodi womugqa omusha, umyalezo okhombisa ukuthi iskripthi kufanele senziwe ngamapharamitha amabili, bese kukhonjiswa inketho (ulayini 31) funda Kukukhuthaza ukuthi ucindezele u- "S" noma "s" uma kwenzeka ufuna ukukhombisa usizo. Kumugqa wama-32 sithi ngokoqobo: 'uma impendulo (eza kithi ngokuguquguqukayo $ IMPENDULO) iqukethe noma iziphi izinhlamvu ezisetshenzisiwe ezingosonhlamvukazi noma ezincane ', bese (umugqa wama-33) ukhombisa umugqa ongenalutho (umugqa wama-34) bese wenza umsebenzi wosizo (imigqa 23 ~ 26).

Umsebenzi we-nodir (imigqa 39 ~ 42) uzokwenziwa lapho sithola ukuthi umkhombandlela lapho kuseshwa khona awukho.

Ukusebenza

Ngalokhu sesivele sinakho ichaze yonke imisebenzi edingekayo ukwenza uhlelo lwethu, oluqala empeleni kulayini 44, ukubheka ukuthi ngabe amapharamitha okuqala athola iskripthi ngu "-h", uma kuliqiniso, yenza umsebenzi wosizo futhi iphuma ekhombisa ukunqanyulwa okujwayelekile.

Uma i-PATTERN (ipharamitha yokuqala njengoba kuchazwe kumugqa we-15) ingu "-a", umbhali uboniswa ngokulandela inqubo efanayo echazwe esigabeni esedlule ngenketho ethi "-h".

Emgqeni 56 kulawulwa ukuthi asikaze sithole ngaphansi kwamapharamitha amabiliKulokhu, umsebenzi we-noparams uyenziwa, lapho-ke, kulayini 60 sithole uma umkhombandlela esifuna ukwenza kuwo usesho ukhona, uma ikhona, kukhonjiswa umugqa ongenalutho, i thola umyalo ngekheli lesikhombi lapho sifuna ukwenza khona usesho lulandelwa yiphethini (ukuqala kwegama lefayela esilifunayo) umugqa omusha ongenalutho nokusebenzisa phuma $? sikubeka okukhishwa kweskripthi sethu kumphumela okhiqizwe yi-find. Uma kwenzeka isimo se- ukuba khona kwesiqondisi kungamanga (umugqa 67) senza ucingo ku-nodir function futhi siyaphuma okukhombisa ukunqanyulwa okungavamile.

Ukubulawa nokuhlolwa

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

En izindatshana ezilandelayo mayelana neBash sizobona izindlela ze sebenzisa amapharamitha emisebenziniSizobona futhi ukuthi singakwenza kanjani khuluma idatha yokubuyisa kusuka okufanayo.

Ngiyethemba futhi ngiyethemba ukuthi lokhu okuthunyelwe kube wusizo kuwe.


Shiya umbono wakho

Ikheli lakho le ngeke ishicilelwe. Ezidingekayo ibhalwe nge *

*

*

  1. Ubhekele imininingwane: Miguel Ángel Gatón
  2. Inhloso yedatha: Lawula Ugaxekile, ukuphathwa kwamazwana.
  3. Ukusemthethweni: Imvume yakho
  4. Ukuxhumana kwemininingwane: Imininingwane ngeke idluliselwe kubantu besithathu ngaphandle kwesibopho esisemthethweni.
  5. Isitoreji sedatha: Idatabase ebanjwe yi-Occentus Networks (EU)
  6. Amalungelo: Nganoma yisiphi isikhathi ungakhawulela, uthole futhi ususe imininingwane yakho.

  1.   ujosea kusho

    Sawubona,
    kuthakazelisa kakhulu futhi kucace bha.
    Inothi nje; i- $ ilahlekile kulayini 68 phambi kokuguquguqukayo i-EXIT_BAD.
    Ngizoqhubeka ngifunde ngokuqinisekile ngezindatshana zakho.