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.
Sawa,
inonakidza kwazvo uye yakajeka.
Chinyorwa chete; $ iri kushayikwa pamutsetse 68 pamberi peiyo kusiana EXIT_BAD.
Ini ndicharamba ndichidzidza zvechokwadi nezvinyorwa zvako.