Mashandisiro ekuita mabasa muBhash

Mashandisiro ekuita mashandiro muBhash uchishandisa iyi Unix shell-based, POSIX-inoenderana mutauro wemakomputa. Semutauro, basa rayo rinosanganisira kududzirwa kwemirairo yeLinux, zvichitibvumidza kugadzirisa maitiro edu ekudzokorora uye zvakare kugadzira mirairo kubva kune yekushandisa system mirairo. Muchikamu chino tichaongorora mashandisiro emabasa mu bash. Ini ndinokurudzira kuverenga chinyorwa sei gadzira ako magwaro uchishandisa bash.

Mutsamba yatinokurudzira tinoshandisa mutauro weBash kutsvaga faira, tichiziva zita rayo. Kune izvi isu tinoshandisa iyo tsvaga kuraira asi nerubatsiro rwemabasa akambotsanangurwa mune yakataurwa script. Iwe unofanirwa kufunga nezve peculiarity kana kukamurwa kweBash iyo isipo mumitauro yese: kudaidza basa rinofanirwa kutsanangurwa kare.

Tsanangura mabasa

Pane nzira mbiri dzekutsanangura mabasa: uine kana pasina chirevo chebasa:

function nombre_funcion () 
{
    # codigo
}

kana iyi imwe, inova iyo yandinoshandisa sezvamuchaona mumashure.

nombre_funcion ()
{
    # codigo
}

Zvakare Bhash inopawo nzira yekupfuura paramende uye kudzoka mhedzisiro izvo zvatichaona muzvinyorwa zvinotevera.

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


Kuongorora zvinyorwa

Tsanangudzo

Zve bash maitiro ese apedzwa zvinobudirira anofanira kunge aine kodhi "0" sechiratidzo. Mitsetse yegumi nembiri uye yegumi nematanhatu inotsanangura makodhi ekubata akabatwa EXIT_OK yekubudirira y EXIT_BAD yekubuda pakutadza.

Mumitsetse 15 ne16, iyo PATTERN uye DIRECTORY misiyano yakapihwa yekutanga ($ 1) uye yechipiri ($ 2) parameter inoonekwa pamutsetse wekuraira mushure mezita rechinyorwa, sezvatichaona gare gare patinozviita.

In the mutsara 18 isu tinogadzira yedu yekutanga basa. Basa rakanzi «munyori» rinoratidza iyo script kunyora patinoidaidza ne "-a" nharo sezvaungaona mune if pamitsetse 50 ~ 54. Iyo nharo "-uye" kubva pamutsetse 23 inobvumidza kuratidza kuteedzana kwe «inotevera mutsara» nekukodha «\ n».

Kufona kune noparams (mitsara 28 ~ 37) iri mukutarisira maneja zviitiko zvinofanirwa kuitika kana script ichidaidzwa isina chero paramita. Isu tinoratidza, yakanyatsovharirwa pakati pemitsetse mitsva, mutsara unoratidza kuti script inofanirwa kuitwa nemaparameter maviri, uye sarudzo (mutsara 31) inoratidzwa kuti ishandiswe verenga Zvinokukurudzira kuti ubaye "S" kana "s" kuitira kana iwe uchida kuratidza rubatsiro. Mutsetse wemakumi matatu nemasere isu tinoti: 'kana mhinduro (iyo inouya kwatiri mumusiyano $ Pindura) ine chero chevanyori vanonyanyisa kana vashoma ', ipapo (mutsara 33) inoratidza isina chinhu mutsetse (mutsetse 34) uye inoita basa rekubatsira (mitsara 23 ~ 26).

Iyo nodir basa (mitsara 39 ~ 42) ichaitwa kana isu taona kuti dhairekitori uko kutsvaga kuri kuyedzwa hakuna.

Kushanda

Naizvozvi tatova nazvo yakatsanangura ese anodikanwa mabasa kuita chirongwa chedu, icho chinotanga chaizvo pamutsetse 44, kutarisa kana yekutanga paramende inogamuchirwa ne script iri "-h", kana chiri chokwadi, ita basa rekubatsira uye inobuda inoratidza zvakajairika kugumiswa.

Kana PATTERN (yekutanga paramende sezvakatsanangurwa mumutsara wegumi neshanu) ndi "-a", munyori anoratidzwa achiteedzera iwo iwo maitiro akatsanangurwa mundima yapfuura yeiyo "-h" sarudzo.

Pamutsetse 56 inodzorwa kuti hatina kugashira isingasviki maviri paramendeMune ino kesi, iyo noparams basa rinoitwa, ipapo mune if yemutsetse 60 isu tinoona kana dhairekitori ratiri kuda kutsvaga riripo, kana iripo, tambo isina chinhu inoratidzwa, iyo tsvaga kuraira nekero yedhairekitori iyo yatiri kuda kuita tsvakiridzo ichiteverwa nepateni (kutanga kwezita refaira ratiri kutsvaga) mutsara mutsva usina chinhu uye uchishandisa kubuda $? isu tinoisa kuburitswa kwescriptura yedu kumhedzisiro inogadzirwa nekutsvaga. Kana mamiriro ezvinhu e dhairekitori kuvapo kunyepa (mutsara 67) tinoshevedza kun nodir basa uye isu tinobuda tichiratidza kusanzwisisika kumiswa.

Kuitwa uye kuyedzwa

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

En zvinotevera zvinyorwa nezve Bash isu tichaona maitiro e shandisa parameter mumabasaTichaonawo maitiro ekuita taura kudzoka data kubva zvakafanana.

Ndinovimba uye ndinovimba kuti iyi posvo yakashanda iwe.


Siya yako yekutaura

Your kero e havazobvumirwi ichibudiswa. Raida minda anozivikanwa ne *

*

*

  1. Inotarisira iyo data: Miguel Ángel Gatón
  2. Chinangwa cheiyo data: Kudzora SPAM, manejimendi manejimendi.
  3. Legitimation: Kubvuma kwako
  4. Kutaurirana kwedata
  5. Dhata yekuchengetedza: Dhatabhesi inobatwa neOccentus Networks (EU)
  6. Kodzero: Panguva ipi neipi iwe unogona kudzora, kupora uye kudzima ruzivo rwako

  1.   josea akadaro

    Sawa,
    inonakidza kwazvo uye yakajeka.
    Chinyorwa chete; $ iri kushayikwa pamutsetse 68 pamberi peiyo kusiana EXIT_BAD.
    Ini ndicharamba ndichidzidza zvechokwadi nezvinyorwa zvako.