Programmeerimine bashis - 1. osa

Ehkki me kasutame seda tavaliselt haldus- või failihaldustoiminguteks, on mugavus de Linux laiendab oma funktsionaalsust sellest eesmärgist kaugemale, võimaldades meil programmeerida skripte Selle juhendi eesmärk ei ole olla täielik viide Bashi programmeerimisele, vaid see on põhikäskude ja struktuuride sissejuhatus, mis võimaldab meil laiendada meie GNU / Linuxi süsteemi võimsust.

Mis on "skript"?

Põhimõtteliselt ütleme, et see on fail, mis sisaldab kindlas programmeerimiskeeles kirjutatud koodi, mida süsteem kasutab teatud ülesande täitmiseks. Sellel ei pea olema välist sisendit ega graafilist liidest, kuid see peab põhjustama töödeldud andmete väljundi (isegi kui kasutaja neid ei näe).

Bashi kasutatav keel on määratletud tema enda tõlgi abil ja ühendab teiste kestade süntaksit, näiteks Korn Shell (ksh) või C Shell (csh). Paljusid konsoolis tavaliselt kasutatavaid käske saab kasutada ka skriptides, välja arvatud need, mis on rangelt seotud konkreetse levitamisega.

Skripti struktuur

Alustuseks peab meil olema tekstiredaktor ja soov programmeerida. Faile, mille me laiendiga .sh salvestame, saab konsool käivitada (või tõlgendada), kui esimene rida on järgmine:

#! / bin / bash

See käsib süsteemil faili käivitamiseks kasutada konsooli. Lisaks võimaldab märk # kirjutada kommentaare. Lihtsaima näite loomiseks lisame veel ühe rea, mida näete järgmisel pildil:

Kaja käsk kuvab ekraanil teate, antud juhul tüüpilise "Tere maailm!" Kui salvestame selle ja täidame selle konsooliga, näeme tulemust.

Põhikäsud

Järgmised käsud on tavalised ja igat tüüpi programmide jaoks väga kasulikud. Selgitame, et neid on palju rohkem, kuid praegu käsitleme järgmist.

Pseudonüümid: võimaldab sõnade stringi asendada lühemaga, võimaldades koodi vähendada.

#create alias nimega alias nimega #Downloads kausta alias per = '/ home / user / Downloads' # Iga kord, kui seda kasutada tahame, peame lihtsalt helistama #sõnale # selle alias hävitamiseks kasuta unalias unalias per

paus: võimaldab teil a-st, samas, kuni või tsüklist kohe väljuda (uurime tsükleid hiljem üksikasjalikult)

#Looge silmus, mis määrab 1 5 1 2 3 loenduri jaoks iga "silmuse pöörde" jaoks numbrid vahemikus 4 kuni 5 # trükime muutuja #counter praeguse väärtuse, mida analüüsib märk $ kaja "$ counter" #Kui loenduri väärtus on võrdne 3-ga, kui [$ counter –eq 3], siis #Paus väljub katkestuse lõpetamisest

jätka - sarnane katkestusega, välja arvatud see, et see ignoreerib praegust silmust ja läheb järgmise juurde.

#Looge silmus, mis määrab 1 5 1 2 3 loenduri jaoks iga "silmuse pöörde" jaoks numbrid 4 kuni 5 # tehke #Kui loenduri väärtus on võrdne 3-ga, kui [$ counter –eq 3], siis #Jätka takistab ülejäänud # praeguse tsükli analüüsimist, hüpates järgmisele ringile, see tähendab, et # väärtus 3 ei prindita. jätka fi echo "$ counter" tehtud

deklareerima: deklareerib muutujad ja määrab neile väärtused, nagu ka komplekt (need töötavad samamoodi). Saame selle kombineerida mõne võimalusega: -i deklareerib täisarvud; -r kirjutuskaitstud muutujate puhul, mille väärtust ei saa muuta; –A massiivide või „massiivide“ jaoks; -f funktsioonide jaoks; -x muutujate jaoks, mida saab "eksportida" väljaspool skripti enda keskkonda.

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

help: näitab konkreetse käsu abi.

töökohad: näitab jooksvaid protsesse.

# Koos –c näitame käskude nime, kusjuures –p # iga protsessi pid (protsessi ID). töökohad -cp

laskma: hindama aritmeetilist avaldist

las a = 11 las a = a + 5 # Lõpuks printime a väärtuse, mis on 16 kaja "11 + 5 = $ a"

kohalik: looge kohalikud muutujad, mida tuleks vigade vältimiseks eelistatult kasutada skripti enda funktsioonides. Võite kasutada samu funktsioone nagu käsk deklaratsioon.

local v1 = "See on lokaalne muutuja"

väljalogimine: võimaldab täielikult Shellist välja logida; kasulik juhtudel, kui töötame rohkem kui ühe Shelli aknaga, kus käsk exit võimaldab korraga lõpetada ainult ühe akna.

printf: võimaldab teil andmeid printida ja neid vormindada. Sellel on palju võimalusi, nii et mainime mõnda.

#% f prinditakse ujuva arvuna, n uue # rea printf "% fn" 5 5.000000 # & d abil saab kümnendnumbrid edastada argumentidena printf "% d tellimust on hinnatud% d dollarites. n" 20 500 On 20 tellimust, mille väärtus on 500 dollarit.

loe: loe rida standardsisendist (moodul, mida kasutatakse näiteks andmete laadimiseks klaviatuuri kaudu). Me võime edastada selliseid valikuid nagu: -t, et anda lugemisele piirangu aeg; -a nii, et iga sõna määratakse aname massiivi positsioonile; -d kasutada eraldajat, mis kirjutatakse rea lõppu; teiste hulgas.

echo "Sisestage oma nimi ja vajutage sisestusklahvi" #Lugege muutuja nime loetud nimi kaja "Teie nimi on $ nimi"

type: kirjeldab käsku ja selle käitumist. Võib olla kasulik teada saada iga käsu andmemääratlused.

tüüp –a '[' #type ütleb meile, et [on Shelli sisseehitatud käsk [on Shelli sisseehitatud # -a võimaldab leida katalooge, mis sisaldavad # kirjutatava nimega käivitatavat faili. [on / usr / bin / [

ulimit: piirab teatud süsteemiressursside juurdepääsu ja kasutamist protsessidele, mis on ideaalne programmide jaoks, mis võimaldavad haldusmuudatusi või on suunatud erinevat tüüpi kasutajatele. Piirangu seadmisel kirjutame arvu, mis tähistab piiri kilobaiti.

#Me näeme, et meie praegused piirid ulimit –a # -f võimaldab kasutajatel piirduda sellega, et nad ei saa # luua suuremaid kui 512000 Kb (500 # MB) faile ulimit –f 512000 # -v piirab protsessi virtuaalset mälu. ulimit –v 512000

oota: oota, kuni teatud protsess või töö jätkub.

#Skript ootab pid # 2585 protsessi teostamist

oota 2585

Muud kasulikud käsud, mida saame skriptidesse lisada, on tähistatud sümbolitega.

!!: käivitage viimane käsk uuesti

! wer: täidab viimase käsu, mis algas väljendiga “wer”.

'==', '! =', '>', '<', '> =' ja '<=': relatsioonioperaatorid.

|: OR-operaator kasutas tavaliselt kahe regulaaravaldise liitmist.

: escape-käsk, mis võimaldab teil väljendeid vormindada. Näiteks: a helisignaali jaoks, n uue rea jaoks, b tagasilükkekoha jaoks jne.

Aitäh Juan Carlos Ortiz!

Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.

  1.   Keskmiselt raske DIJO

    Suurepärane! Igatahes 2 kommentaari: Ubuntu silti on poole vähem, kuna see üldistab midagi, mis on üldine. Ja kui nende õpetuste edasiarendus jätkub, oleks hea, kui need oleksid omavahel seotud ...
    Peale selle on see käik huvitav!

  2.   Kasutame Linuxi DIJO

    Hea panus! Suurepärane!

  3.   Giovanni escobar sosa DIJO

    Ainult puuduvad viited neile, kes soovivad asjasse rohkem süveneda. Mõned head, kuigi neid pole meie riikides nii lihtne leida
    - praktiline juhend Linuxi käskude, redigeerijate ja kestade programmeerimise kohta, Mark Sobell (8. peatükk)
    - Pro Bash Programming, Chris FA Johnson (kuigi see on mõeldud neile, kellel on muid viiteid või veidi rohkem teadmisi).

    Hea artikkel.

  4.   Kasutame Linuxi DIJO

    Hea kuupäev! Aitäh!

  5.   Patricio Dorantes Jamarne DIJO

    : @ Funktsioon "Logi sisse kui" kustutas mu eelmise kommentaari, nii et võtan selle veel kokku:
    töökohad -cp
    bash: töökohad: -c: kehtetu valik
    töökohad: kasutus: töökohad [-lnprs] [töökoht ...] või käsk job -x [args]

    -eq -gt -lt ei aktsepteeri kümnendmuutujaid, foorumi ja foorumi vahel avastasin, et bc on hea liitlane:
    kui ["kaja 9.999> 10 | bc-eq 1]; siis
    kaja "9.999 on suurem kui 10, veenduge, et protsessor töötab endiselt"
    teine
    kaja «9.999 pole suurem kui 10, kõik töötab normaalselt
    fi

  6.   MitteBrooklynist DIJO

    See postitus võtab väga hästi kokku kõik bashi skriptimise üldised küljed:
    http://www.aboutlinux.info/2005/10/10-seconds-guide-to-bash-shell.html

    Sellelt saidilt leiate palju küsimusi ja vastuseid põhiliste iseärasuste kohta:
    http://unix.stackexchange.com/questions/tagged/bash

    Siin on mõned väga lahedad skriptid ja kuule, neid saab õppida teiste skripte lugedes:
    http://snipplr.com/search.php?q=bash&btnsearch=go

  7.   MitteBrooklynist DIJO

    Sul on õigus oma ütlustega, välja arvatud bash. Igas süsteemis, mida olen näinud, on bash / bin / bash.

    Kuid pythoni, perli, rubiini jne jaoks on seda hea kasutada. Ma teen

  8.   Guille DIJO

    Juhuslikult kasutame ülikoolis bashi skripte, nii et andmeid on 10, väga hea!

  9.   Alex vi DIJO

    PDF-versioon allalaadimiseks oleks hea! 😀

  10.   Marco Antonio De Fuentes DIJO

    Väga hea sait. Lõpuks leidsin midagi kasulikku. Aitäh.