Programiranje v bash - 1. del

Medtem ko ga običajno uporabljamo za administrativne postopke ali operacije upravljanja datotek, pa Udobje de Linux razširja svojo funkcionalnost daleč preko tega namena in nam omogoča programiranje skripte v skladu z našimi potrebami. Ta priročnik naj ne bi bil popolna referenca o programiranju Bash, temveč uvod v osnovne ukaze in strukture, ki nam bodo omogočili razširitev moči našega sistema GNU / Linux.

Kaj je "skript"?

V bistvu pravimo, da gre za datoteko, ki vsebuje kodo, napisano v določenem programskem jeziku, ki jo sistem uporablja za določeno nalogo. Ni mu treba imeti zunanjega vhoda ali grafičnega vmesnika, vendar mora povzročiti izhod obdelanih podatkov (tudi če jih uporabnik ne vidi).

Jezik, ki ga uporablja Bash, opredeljuje lastni tolmač in združuje sintakso drugih lupin, na primer lupine Korn (ksh) ali lupine C (csh). Številni ukazi, ki se običajno uporabljajo v konzoli, se lahko uporabljajo tudi v skriptih, razen tistih, ki se natančno nanašajo na določeno distribucijo.

Struktura skripte

Za začetek moramo imeti urejevalnik besedil in željo po programiranju. Datoteke, ki jih shranimo s pripono .sh, lahko ukaz izvaja (ali interpretira), če je prva vrstica naslednja:

#! / Bin / bash

To sistemu pove, naj za zagon datoteke uporabi konzolo. Poleg tega vam znak # omogoča pisanje komentarjev. Če želite ustvariti najpreprostejši primer, dodamo še eno vrstico, prikazano na naslednji sliki:

Ukaz echo prikaže na zaslonu sporočilo, v tem primeru tipično "Hello world!" Če ga shranimo in izvedemo s konzolo, bomo videli rezultat.

Osnovni ukazi

Naslednji ukazi so pogosti in zelo uporabni za vse vrste programov. Pojasnjujemo, da jih je še veliko več, a za zdaj bomo zajeli naslednje.

Vzdevki: omogoča zamenjavo niza besed s krajšim, kar omogoča zmanjšanje kode.

#create vzdevek, imenovan per z naslovom #Downloads mape alias per = '/ home / user / Downloads' # Vsakič, ko ga želimo uporabiti, moramo samo poklicati # novo besedo na # Za uničenje tega vzdevka uporabimo unalias unalias per

odmor: omogoča takojšen izhod iz zanke for, while, dokler ali izberite zanko (zanke bomo podrobneje preučili pozneje)

# Ustvarite zanko, ki bo dodelila številke od 1 do 5 # za vsak "obrat zanke" za števec v 1 2 3 4 5 do # Natisnemo trenutno vrednost spremenljivke #counter, ki jo analizira znak $ echo " $ counter "# Če je vrednost števca enaka 3, če je [$ counter –eq 3], potem #The break zapusti zanko za prekinitev fi

nadaljevanje - podobno kot break, le da prezre trenutno zanko in gre v naslednjo.

# Ustvarite zanko, ki bo dodelila številke od 1 do 5 # za vsak "obrat zanke" za števec v 1 2 3 4 5 naredite # Če je vrednost števca enaka 3, če je [$ števec –eq 3], potem # Nadaljuj preprečuje analizo preostalega trenutnega cikla s skokom v naslednji krog, to pomeni, da vrednost #value 3 ne bo natisnjena. nadaljevanje fi echo "$ counter" končano

izjavi: razglasi spremenljivke in jim dodeli vrednosti, tako kot nabor tipov (delujejo na enak način). Lahko ga kombiniramo z nekaterimi možnostmi: -javim cela števila; -r za spremenljivke samo za branje, katerih vrednosti ni mogoče spremeniti; –A za nize ali „nize“; -f za funkcije; -x za spremenljivke, ki jih je mogoče "izvoziti" izven okolja samega skripta.

prijavi –i num = 12 izjavi –x pi = 3.14

pomoč: prikaže pomoč za določen ukaz.

Jobs: prikazuje tekoče procese.

# Z –c prikažemo ime ukazov, s –p # pid (id procesa) vsakega procesa. delovna mesta -cp

naj: oceni aritmetični izraz

naj bo a = 11 naj bo a = a + 5 # Končno izpišemo vrednost a, ki je 16 odmev "11 + 5 = $ a"

local: ustvari lokalne spremenljivke, ki jih je priporočljivo uporabiti v funkcijah samega skripta, da se izogneš napakam. Uporabite lahko enake funkcije kot ukaz za izjavo.

local v1 = "To je lokalna spremenljivka"

odjava: omogoča popolno odjavo iz školjke; uporabno za primere, ko delamo z več kot enim oknom lupine, v katerem bo ukaz za izhod hkrati omogočil, da se zaključi samo eno okno.

printf: omogoča tiskanje podatkov in njihovo formatiranje. Ima veliko možnosti, zato jih bomo omenili nekaj.

#% f natisne kot plavajočo številko, n za novo # vrstico printf "% fn" 5 5.000000 # & d omogoča podajanje decimalnih števil kot argumente printf "Obstaja% d naročil, vrednotenih v% d dolarjev.n" 20 500 Obstaja 20 naročil, vrednotenih na 500 Dolarjev.

branje: preberite vrstico s standardnega vnosa (modul, ki se na primer uporablja za nalaganje podatkov prek tipkovnice). Lahko prenesemo možnosti, kot so: -t, da določimo čas za branje; -a tako, da je vsaka beseda dodeljena položaju v matrični matriki; -d uporabiti ločilo, ki bo zapisano na koncu vrstice; med ostalimi.

echo "Vnesite svoje ime in pritisnite ENTER" # Preberite ime spremenljivke preberite ime echo "Vaše ime je $ name"

type: opisuje ukaz in njegovo vedenje. Koristno je ugotoviti definicije podatkov za vsak ukaz.

type –a '[' #type nam pove, da [je vgrajen ukaz Shell [je vgrajen Shell # -a omogoča iskanje imenikov, ki vsebujejo # izvršljivo datoteko s napisanim imenom. [je / usr / bin / [

ulimit: omejuje dostop in uporabo nekaterih sistemskih virov na procese, kar je idealno za programe, ki omogočajo administrativne spremembe ali so namenjeni različnim vrstam uporabnikov. Pri nastavljanju omejitve napišemo številko, ki predstavlja kilobajte omejitve.

# Vidimo, da naše trenutne omejitve ulimit –a # -f omogoča uporabnikom, da ne morejo # ustvariti datotek, večjih od 512000 Kb (500 #Mb) ulimit -f 512000 # -v, omejuje navidezni pomnilnik procesa. ulimit –v 512000

počakaj: počakajte, da se določen postopek ali opravilo nadaljuje.

# Skript čaka, da se izvede postopek pid # 2585

počakaj 2585

Drugi uporabni ukazi, ki jih lahko dodamo skriptom, so predstavljeni s simboli.

!!: znova zaženite zadnji ukaz

! wer: izvrši zadnji ukaz, ki se je začel z izrazom "wer".

'==', '! =', '>', '<', '> =' in '<=': relacijski operaterji.

|: Operator OR se je običajno uporabljal za združevanje dveh regularnih izrazov.

: ukaz escape, ki vam omogoča oblikovanje izrazov. Na primer: a za zvočno opozorilo, n za novo vrstico, b za backspace itd.

Hvala Juan Carlos Ortiz!

Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.

  1.   Srednje težko je dejal

    Super! Kakorkoli že, 2 komentarja: Oznake Ubuntu je pol preveč, saj posplošuje nekaj splošnega. In če bodo te vaje še naprej napredovale, bi bilo dobro, če bi bile povezane med seboj ...
    Razen tega je ta poteza zanimiva!

  2.   Uporabimo Linux je dejal

    Dober prispevek! Super!

  3.   Giovanni escobar sosa je dejal

    Manjkajo samo reference za tiste, ki želijo zadevo podrobneje spoznati. Nekatere dobre, čeprav jih v naših državah ni tako enostavno najti, so
    - Praktični priročnik za Linux ukaze, urejevalnike in programiranje lupine, Mark Sobell (8. poglavje)
    - Pro Bash programiranje, Chris FA Johnson (čeprav je to za tiste, ki imajo druge reference ali malo več znanja).

    Dober članek.

  4.   Uporabimo Linux je dejal

    Dober zmenek! Hvala vam!

  5.   Patricio Dorantes Jamarne je dejal

    : @ Funkcija »prijava kot« je izbrisala moj prejšnji komentar, zato ga bom še povzel:
    delovna mesta -cp
    bash: jobs: -c: neveljavna možnost
    Jobs: uporaba: Jobs [-lnprs] [jobspec…] ali ukaz jobs -x [args]

    -eq -gt -lt ne sprejemajo spremenljivk z decimalno vejico, med forumom in forumom sem ugotovil, da je bc dober zaveznik:
    if [`echo 9.999> 10 | bc` -eq 1]; potem
    echo "9.999 je večje od 10, prepričajte se, da vaš procesor še vedno deluje"
    ostalo
    echo «9.999 ni večji od 10, vse deluje normalno
    fi

  6.   Ne iz Brooklyna je dejal

    Ta objava zelo dobro povzema vse splošnosti bash skript:
    http://www.aboutlinux.info/2005/10/10-seconds-guide-to-bash-shell.html

    Na tej spletni strani boste našli veliko vprašanj in odgovorov o posebnostih basha:
    http://unix.stackexchange.com/questions/tagged/bash

    Tu je nekaj zares kul scenarijev. Hej, naučite se jih lahko tako, da preberete skripte drugih ljudi:
    http://snipplr.com/search.php?q=bash&btnsearch=go

  7.   Ne iz Brooklyna je dejal

    Prav imaš to, kar rečeš, razen bash. Vsak sistem, ki sem ga videl, ima bash v / bin / bash.

    Toda za python, perl, ruby ​​itd. Je v redu, če to uporabimo. Jaz vem

  8.   Guille je dejal

    Po naključju na fakulteti uporabljamo bash skripte, tako da je podatkov 10, zelo dobro!

  9.   alex sem videl je dejal

    pdf različica za prenos bi bila dobra !! 😀

  10.   Marco Antonio De Fuentes je dejal

    Zelo dobra stran. Končno sem našel nekaj koristnega. Hvala vam.