Programimi në bash - pjesa 3

i sigurt tonë conceptos Ne do të mësojmë 2 mjete shumë të dobishme për programimin që funksionojnë në mënyrë të përsosur në Bash. Mësoni të krijoni funksionet dhe përcaktoni tubacionet mund të duket komplekse në fillim, por pastaj do të shohim pamasë dobi që ata të na sigurojnë.

Tuba

Në mënyrë të veçantë, dhe pa marrë shumë kthesa, një tubacion është një metodë që lejon drejtimin e prodhimit të një procesi si hyrjen e një tjetri, i cili lejon një seri avantazhesh, të tilla si zvogëlimi i linjave të kodit, shpërndarja me ndryshoret e ruajtjes për rezultate dhe përmirësimi efikasitetin e skenarit.

Një tub zakonisht njihet duke pasur simbolin | që lejon bashkimin e shprehjeve; Megjithëse përdoret si parazgjedhje, ka mënyra të tjera për të krijuar tuba.

Shembull: shtypni mesazhet e fundit të kernelit

#dmesg ju lejon të shihni mesazhet e fundit të kernelit dhe drejtuesit e ngarkuar # gjatë nisjes së sistemit; bishti printon pjesët e fundit të një skedari ose #komandë

dmesg | bisht

Megjithëse ato mund të jenë të komplikuara sa të duam, struktura themelore e një tubacioni lejon që rezultati i një komande të përdoret si input në tjetrin, i cili mund të sigurojë hyrje për një komandë të re nëse vazhdojmë të shtojmë tuba radhazi.

funksionet

Funksionet janë një grup deklaratash që grupohen së bashku në mënyrë që ato të ekzekutohen disa herë pa pasur nevojë të rishkruhen. Isshtë ekuivalente me të menduarit se kur të mësojmë të gatuajmë një lloj ushqimi do të shkruajmë recetën e tij në një fletë, dhe çdo herë që duam ta gatuajmë atë ushqim këshillohemi me recetën në vend që të rishkruajmë një fletë të re me të njëjtën recetë.

Ndoshta gjëja më e rëndësishme për funksionet është mundësia e kalimit të parametrave, të dhënave që ata do të përdorin për t'i përpunuar ato dhe për të gjeneruar një dalje. Struktura e saj është si më poshtë:

funksioni-emri i funksionit {

procesos

}

Shembull: funksioni që tregon shërbimet që punojnë në protokollin tcp. Ne gjithashtu mund të shohim se si të aplikojmë më shumë tuba.

# Ne përcaktojmë një emër funksioni, mund të jetë ai që na pëlqen.

funksionet e shërbimeve_tcp {

#cat bashkon dhe shfaq përmbajtjen e dosjes / etc / services, e cila është # që përmban të gjitha shërbimet me portet e tyre të lidhura.

# grep i parë merr listën dhe heq komentet, me –v ne përmbysim rezultatin

# grep i dytë tregon vetëm ato që lidhen me tcp

mace / etj / shërbime | grep –v "^ #" | grep tcp

}

Kur duhet të ekzekutojmë këtë funksion, ne thjesht duhet ta quajmë me emrin e tij:

tcp_serviset

Në këtë rast funksionon pa parametra; Në rast se i ka, duhet t’i shtojmë në mënyrë që funksioni të funksionojë si duhet, përndryshe funksioni nuk do të funksionojë siç duhet. Përdorimi i kthimit lejon që një funksion të kthejë një vlerë si rezultat i procesit.

Shembull: funksion me parametra hyrës që llogarit shumën e 2 numrave.

#! / bin / bash
shuma e funksionit ()
{
# me le të mund të ekzekutojmë operacionin brenda thonjëzave
le "rezultat = $ 1 + $ 2"

# kthimi lejon kthimin e vlerës së plotë. Pasi të ekzekutohet kthimi, vlera do të depozitohet brenda ndryshores $?
kthimi $ rezultat;
}
 
# Thirret funksioni i shumës dhe ne kalojmë 2 parametra hyrës.

shtoni 2 3

# shtyp vlerën e $? me eko vlerësimin e vlerës aktuale të ndryshores në thonjëza
jehonë -e "Rezultati = $?";

<< Shko te pjesa e mëparshme

Faleminderit Juan Carlos Ortiz!


7 komente, lini tuajën

Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.

  1.   Treguesi Nill dijo

    Nuk jam i sigurt, por deklarata e kthimit të funksioneve shërben vetëm për të kthyer një numër të plotë midis 0 dhe 255, si kodet e gabimit të "daljes", zakonisht 0 nëse gjithçka është në rregull dhe një numër tjetër për rastet e tjera. Edhe pse në shembullin kjo funksionon, unë nuk mendoj se është një praktikë e mirë për të kthyer rezultatin me kthim.
    Atje po them një marrëzi hë! sy! ha!

  2.   johnk dijo

    E vërteta më la me dyshim. Në çdo rast, për të shmangur problemet me funksionet, ne mund ta zëvendësojmë kthimin me echo në rast se funksioni kërkon të kthejë ose të shtypë një vlerë ose varg.

  3.   Abel S. Mount Big dijo

    Trueshtë e vërtetë, për ta zgjidhur këtë mund të përdorni komandën bc, në funksionin shuma që mund të përdorni: rezultat = `jehonë $ 1 + $ 2 | pc -ql`

  4.   Luis Miguel dijo

    Mirë,

    Unë do të doja të di se ku mund t'i ruaj skedarët bash për të ekzekutuar sistemin në të gjithë dhe kjo nuk është direktoriumi bin, por mund të jetë shtëpi për rezervë.

    Faleminderit dhe te fala.

  5.   Joaquin dijo

    Faleminderit shumë, unë jam duke filluar me skenarët, dhe e vërteta është se kjo është shumë e dobishme, ju jeni shumë i sjellshëm duke ndarë njohuritë tuaja!
    të fala

    1.    le të përdorim linux dijo

      Faleminderit! Perqafo!
      Paul

  6.   CRISTHIAN dijo

    Gabim sintakse: "(" i papritur
    Kam një gabim kur përpiqem të ekzekutoj shembullin, e kopjova atë njësoj

    Çfarë mund të jetë? jam ne ubuntu 14.10