Programimi në bash - pjesa 1

Ndërsa ne zakonisht e përdorim atë për operacione administrative ose të menaxhimit të skedarëve, consola de Linux e shtrin funksionalitetin e tij shumë përtej këtij qëllimi, duke na lejuar të programojmë scripts Ky udhëzues nuk synon të jetë një referencë e plotë mbi programimin Bash, por më tepër një hyrje në komandat dhe strukturat themelore, të cilat do të na lejojnë të zgjerojmë fuqinë e sistemit tonë GNU / Linux.

Çfarë është një "Script"?

Në thelb themi se është një skedar që përmban kod të shkruar në një gjuhë të caktuar programimi që sistemi përdor për një detyrë të caktuar. Nuk ka nevojë të ketë një hyrje të jashtme ose ndërfaqe grafike, por ka nevojë të bëjë që të dhënat e përpunuara të dalin (edhe nëse përdoruesi nuk i sheh ato).

Gjuha e përdorur nga Bash përcaktohet nga interpretuesi i saj dhe ndërthur sintaksën e predhave të tjera, të tilla si Korn Shell (ksh) ose C Shell (csh). Shumë nga komandat që përdoren zakonisht në tastierë mund të përdoren edhe në skripte, përveç atyre që kanë të bëjnë me një shpërndarje të veçantë.

Struktura e një skenari

Për të filluar duhet të kemi një redaktues teksti dhe dëshirë për të programuar. Skedarët që ruajmë me një shtrirje .sh mund të ekzekutohen (ose interpretohen) nga tastiera, për sa kohë që rreshti i parë është si vijon:

#! / bin / bash

Kjo i tregon sistemit që të përdorë konsolën për të ekzekutuar skedarin. Përveç kësaj, karakteri # ju lejon të shkruani komente. Për të krijuar shembullin më të thjeshtë shtojmë edhe një rresht, që shihet në imazhin vijues:

Komanda echo shfaq një mesazh në ekran, në këtë rast tipikun "Përshëndetje botë!" Nëse e ruajmë dhe e ekzekutojmë me tastierë do të shohim rezultatin.

Komandat Themelore

Komandat e mëposhtme janë të zakonshme dhe shumë të dobishme për çdo lloj programi. Ne sqarojmë se ka shumë më tepër, por tani do të mbulojmë sa vijon.

Aliases: lejon që një varg fjalësh të zëvendësohet me një të shkurtër, duke lejuar zvogëlimin e kodit.

#krijoni një pseudonim të thirrur per me adresën e dosjes # Shkarkime alias per = '/ home / user / Shkarkime' # Çdo herë që duam ta përdorim duhet thjesht të thërrasim # fjalën e re për # Për ta shkatërruar atë alias, ne përdorim unalias unalias per

pushim: ju lejon të dilni menjëherë nga një lak, ndërsa, derisa të zgjidhni një lak (ne do të studiojmë sythe në detaje më vonë)

# Krijoni një lak që do të caktojë numrat nga 1 në 5 # për secilin "kthesë të lakut" për numëruesin në 1 2 3 4 5 bëni # Ne shtypim vlerën aktuale të ndryshores # numërues, e cila analizohet nga karakteri $ echo " $ counter ”#Nëse vlera e kundër është e barabartë me 3 nëse [$ counter –eq 3] atëherë # Ndërprerja del nga lakja për break fi bërë

vazhdo - Ngjashëm me ndërprerjen, përveç se ajo injoron lakun aktual dhe shkon te tjetri.

# Krijoni një lak që do të caktojë numrat nga 1 në 5 # për secilin "kthesë të lakut" për numëruesin në 1 2 3 4 5 bëni # Nëse vlera e kundërvënies është e barabartë me 3 nëse [$ counter –eq 3] atëherë # Vazhdoni parandalon që pjesa tjetër e ciklit aktual # të analizohet duke u hedhur në raundin tjetër, domethënë # vlera 3 nuk do të shtypet. vazhdoni jehonën "$ counter" të bërë

deklarojnë: deklaron ndryshoret dhe u cakton atyre vlera, ashtu si tipi (ato funksionojnë në të njëjtën mënyrë). Mund ta kombinojmë me disa opsione: -i deklaron numrat e plotë; -r për ndryshoret vetëm për lexim, vlera e të cilave nuk mund të ndryshohet; –A për vargje ose "vargje"; -f për funksionet; -x për variablat që mund të "eksportohen" jashtë mjedisit të vetë skenarit.

deklaroj –i num = 12 deklaroj –x pi = 3.14

ndihmë: tregon ndihmë për një komandë specifike.

punë: tregon proceset e ekzekutimit.

# Me –c tregojmë emrin e komandave, me –p # pid (id i procesit) të secilit proces. punë-copë

le të: vlerësojë një shprehje aritmetike

le a = 11 le a = a + 5 # Përfundimisht ne shtypim vlerën e a e cila është 16 jehonë "11 + 5 = $ a"

local: krijoni variabla lokalë, të cilët duhet të përdoren mundësisht në funksionet e vetë skriptit për të shmangur gabimet. Ju mund të përdorni të njëjtat funksione si komanda deklaroj.

local v1 = "Kjo është një ndryshore lokale"

logout: lejon daljen plotësisht nga një Shell; e dobishme për rastet kur ne punojmë me më shumë se një dritare shell, në të cilën komanda e daljes do të lejojë që vetëm një dritare të përfundojë në të njëjtën kohë.

printf: ju lejon të shtypni të dhëna dhe t'i formatoni ato. Ka shumë mundësi, kështu që ne do të përmendim disa.

#% f shtyp si një numër lundrues, n për shtypjen e re të # rreshtit "% fn" 5 5.000000 # & d lejon të kalojë numra dhjetorë si argumente printf "Ka% d porosi të vlerësuara në% d dollarë.n" 20 500 Ka 20 porosi me vlerë 500 Dollarë

lexo: lexo një rresht nga hyrja standarde (moduli i përdorur në ngarkimin e të dhënave përmes tastierës për shembull). Ne mund të kalojmë mundësi si: -t për të dhënë një kohë kufiri leximi; -a në mënyrë që secila fjalë të caktohet në një pozicion në grupin aname; -d të përdorë një ndarës që do të shkruhet në fund të rreshtit; ndër të tjera.

echo "Fut emrin tënd dhe shtyp ENTER" #Lexo emrin e ndryshores lexo emrin echo "Emri yt është $ name"

lloji: përshkruan një komandë dhe sjelljen e saj. Mund të jetë e dobishme për të gjetur përkufizimet e të dhënave për secilën komandë.

lloji –a '[' # tipi na tregon se [është një komandë e ndërtuar në Shell [është një e ndërtuar në Shell # -a lejon të gjeni direktoritë që përmbajnë # një të ekzekutueshëm me emrin e shkruar. [është / usr / bin / [

ulimit: kufizon hyrjen dhe përdorimin e burimeve të caktuara të sistemit në procese, ideale për programet që lejojnë ndryshime administrative ose që synojnë lloje të ndryshme të përdoruesve. Kur vendosim një kufi shkruajmë një numër që përfaqëson kilobajt të kufirit.

# Ne shohim kufijtë tanë aktualë të ulimit –a # -f lejon përdoruesit e kufizuar të mos jenë në gjendje të # krijojnë skedarë më të mëdhenj se 512000 Kb (500 #Mb) ulimit –f 512000 # -v kufizon kujtesën virtuale të procesit. ulimit –v 512000

prisni: prisni që një proces ose punë e caktuar të kryhet për të vazhduar.

# Skenari pret që të kryhet procesi i pikës # 2585

prit 2585

Komandat e tjera të dobishme që mund t'u shtojmë skriptave përfaqësohen nga simbolet.

!!: ekzekuto përsëri komandën e fundit

! wer: ekzekuton komandën e fundit që filloi me shprehjen "wer".

'==', '! =', '>', '<', '> =', dhe '<=': operatorët relacionalë.

|: Operatori OR zakonisht përdorte për të bashkuar dy shprehje të rregullta.

: komanda e arratisjes që ju lejon të formatoni shprehjet. Për shembull: a për një alarm zanor, n për linjë të re, b për hapësirë ​​prapa, etj.

Faleminderit Juan Carlos Ortiz!

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.   Mesatarja e Vështirë dijo

    Madhe! Gjithsesi, 2 komente: Etiketa Ubuntu është gjysmë shumë, pasi përgjithëson diçka që është e përgjithshme. Dhe nëse këto udhëzime vazhdojnë të përparojnë, do të ishte mirë nëse ato janë të lidhura me njëri-tjetrin other.
    Për më tepër, kjo lëvizje është interesante!

  2.   Le të përdorim Linux dijo

    Kontribut i mirë! Madhe!

  3.   Giovanni escobar sosa dijo

    Mungojnë vetëm referencat për ata që duan të marrin më shumë çështje. Disa të mira edhe pse nuk janë aq të lehta për tu gjetur në vendet tona janë
    - Një Udhëzues Praktik për Komandat Linux, Redaktuesit dhe Programimin Shell, Mark Sobell (Kapitulli 8)
    - Programim Pro Bash, Chris FA Johnson (edhe pse kjo është për ata që kanë referenca të tjera ose pak më shumë njohuri).

    Artikull i mirë

  4.   Le të përdorim Linux dijo

    Data e mbare! Faleminderit!

  5.   Patricio Dorantes Jamarne dijo

    : @ Funksioni "identifikohu si" fshiu komentin tim të mëparshëm, kështu që unë do ta përmbledh më tej:
    punë-copë
    bash: punë: -c: opsion i pavlefshëm
    punë: përdorimi: punë [-lnprs] [specifik i punës…] ose komandë e punë-x [argumente]

    -eq -gt -lt nuk pranoj variabla të pikave dhjetore, midis forumit dhe forumit zbulova se bc është një aleat i mirë:
    nëse [`jehona 9.999> 10 | bc` -eq 1]; atëherë
    echo "9.999 është më e madhe se 10, sigurohuni që procesori juaj është ende duke punuar"
    tjetër
    jehona «9.999 nuk është më e madhe se 10, gjithçka funksionon normalisht
    fi

  6.   JoNgaBrooklyn dijo

    Ky post përmbledh shumë mirë të gjitha gjeneralitetet e skenimit të bash:
    http://www.aboutlinux.info/2005/10/10-seconds-guide-to-bash-shell.html

    Në këtë faqe do të gjeni shumë pyetje dhe përgjigje në lidhje me veçoritë e bash:
    http://unix.stackexchange.com/questions/tagged/bash

    Këtu janë disa skenarë vërtet të mrekullueshëm, dhe hej, ju mund t'i mësoni ato duke lexuar skenarët e njerëzve të tjerë:
    http://snipplr.com/search.php?q=bash&btnsearch=go

  7.   JoNgaBrooklyn dijo

    Keni të drejtë me ato që thoni, përveç bash. Çdo sistem që kam parë ka bash në / bin / bash.

    Por për python, perl, rubin, etj, është mirë ta përdorësh atë. Une bej

  8.   Guille dijo

    Rastësisht, në kolegj po përdorim skenarin bash kështu që të dhënat janë 10, shumë të mira!

  9.   alex pashë dijo

    një version pdf për ta shkarkuar do të ishte mirë !! 😀

  10.   Marco Antonio De Fuentes dijo

    Faqe shumë e mirë. Më në fund gjeta diçka të dobishme. Faleminderit.