Programavimas bash - 1 dalis

Nors mes paprastai jį naudojame administracinėms ar failų tvarkymo operacijoms, komfortas de Linux praplečia savo funkcionalumą toli už šio tikslo, leidžiant mums programuoti scenarijai Šis vadovas nėra skirtas kaip išsami „Bash“ programavimo nuoroda, o įvadas į pagrindines komandas ir struktūras, kurios leis mums išplėsti mūsų GNU / Linux sistemos galią.

Kas yra „scenarijus“?

Iš esmės mes sakome, kad tai yra failas, kuriame yra tam tikra programavimo kalba parašytas kodas, kurį sistema naudoja tam tikrai užduočiai atlikti. Nebūtina turėti išorinės įvesties ar grafinės sąsajos, tačiau ji turi sukelti apdorotų duomenų išvestį (net jei vartotojas jos nemato).

Basho vartojamą kalbą apibrėžia jo vertėjas ir sujungia kitų kriauklių, tokių kaip Korn Shell (ksh) arba C Shell (csh), sintaksę. Daugelis komandų, kurios paprastai naudojamos konsolėje, taip pat gali būti naudojamos scenarijuose, išskyrus tas, kurios griežtai susijusios su konkrečiu paskirstymu.

Scenarijaus struktūra

Norėdami pradėti, turime turėti teksto redaktorių ir norą programuoti. Failus, kuriuos išsaugome su .sh plėtiniu, konsolė gali vykdyti (arba interpretuoti), jei pirmoji eilutė yra tokia:

#! / bin / bash

Tai nurodo sistemai naudoti konsolę paleisti failą. Be to, simbolis # leidžia rašyti komentarus. Norėdami sukurti paprasčiausią pavyzdį, pridedame dar vieną eilutę, matomą šiame paveikslėlyje:

Echo komanda ekrane rodo pranešimą, šiuo atveju tipišką „Hello world!“ Jei išsaugosime ir vykdysime su konsole, pamatysime rezultatą.

Pagrindinės komandos

Šios komandos yra įprastos ir labai naudingos bet kokio tipo programoms. Mes paaiškiname, kad jų yra daug daugiau, tačiau kol kas aptarsime šiuos dalykus.

Pseudonimai: leidžia pakeisti žodžių eilutę trumpesnėmis, leidžiančiomis sumažinti kodą.

#create slapyvardį, vadinamą pagal #Downloads aplanko pseudonimo adresas per = '/ home / user / Downloads' # adresą. Kiekvieną kartą, kai norime jį naudoti, tiesiog turime paskambinti # nauju žodžiu # Norėdami sunaikinti tą pseudonimą, mes naudoti unalias unalias per

pertrauka: leidžia jums nedelsiant išeiti iš „for“, „,“, kol arba pasirinkite ciklą (mes išsamiau išnagrinėsime kilpas vėliau)

# Sukurkite kilpą, kuri priskirs skaičius nuo 1 iki 5 # kiekvienam skaitiklio „ciklo posūkiui“ 1 2 3 4 5 atlikite #Spausdiname dabartinę kintamojo #counter reikšmę, kurią analizuoja simbolis $ echo "$ counter" #Jei skaitiklio vertė lygi 3, jei [$ counter –eq 3], tada #Pertrauka išeina iš pertraukos ciklo

tęsti - Panašus į pertraukimą, išskyrus tai, kad jis nepaiso dabartinės kilpos ir eina į kitą.

# Sukurkite ciklą, kuris priskirs skaičius nuo 1 iki 5 # kiekvienam skaitiklio „ciklo posūkiui“ 1 2 3 4 5 atlikite #Jei skaitiklio vertė lygi 3, jei [$ counter –eq 3], tada # „Tęsti“ neleidžia analizuoti likusio dabartinio ciklo, pereinant prie kito rato, tai yra, # vertė 3 nebus atspausdinta. tęsti fi echo "$ counter" padaryta

deklaruoti: deklaruoja kintamuosius ir priskiria jiems reikšmes, kaip ir rinkiniai (jie veikia taip pat). Galime jį sujungti su kai kuriomis parinktimis: -i deklaruoja sveikus skaičius; -r tik skaitomiems kintamiesiems, kurių vertės pakeisti negalima; –A masyvams arba „masyvams“; -f funkcijoms; -x kintamiesiems, kuriuos galima „eksportuoti“ už paties scenarijaus aplinkos ribų.

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

pagalba: parodo konkrečios komandos pagalbą.

darbai: rodo vykstančius procesus.

# Su –c parodome komandų pavadinimą, o –p # kiekvieno proceso pid (proceso ID). darbai -cp

leiskite: įvertinti aritmetinę išraišką

tegul a = 11 tegul a = a + 5 #Galiausiai atspausdiname a reikšmę, kuri yra 16 aido "11 + 5 = $ a"

vietinis: sukurkite vietinius kintamuosius, kurie turėtų būti naudojami paties scenarijaus funkcijose, kad būtų išvengta klaidų. Galite naudoti tas pačias funkcijas kaip ir deklaravimo komanda.

local v1 = "Tai yra vietinis kintamasis"

atsijungti: leidžia visiškai atsijungti nuo „Shell“; naudinga tais atvejais, kai mes dirbame su daugiau nei vienu apvalkalo langu, kuriame komanda exit leis vienu metu uždaryti tik vieną langą.

printf: leidžia spausdinti duomenis ir juos formatuoti. Jis turi daugybę galimybių, todėl paminėsime keletą.

#% f spausdinamas kaip slankusis skaičius, n naujam # eilutės printf "% fn" 5 5.000000 # & d leidžia perduoti dešimtainius skaičius kaip argumentus printf "Yra% d užsakymų, kurie vertinami% d doleriais. n" 20 500 Yra 20 užsakymų, vertinamų 500 dolerių.

skaityti: skaityti eilutę iš standartinio įvesties (pavyzdžiui, modulis naudojamas duomenims įkelti per klaviatūrą). Mes galime perduoti tokias parinktis kaip: -t, kad skaitymo laikas būtų ribotas; -a taip, kad kiekvienas žodis būtų priskirtas aname masyvo pozicijai; -d naudoti skyriklį, kuris bus parašytas eilutės pabaigoje; tarp kitų.

echo "Įveskite savo vardą ir paspauskite ENTER" #Skaitykite kintamojo vardą skaitykite vardą echo "Jūsų vardas yra $ name"

type: apibūdina komandą ir jos elgesį. Gali būti naudinga sužinoti kiekvienos komandos duomenų apibrėžimus.

type –a '[' #type mums sako, kad [yra „Shell“ įmontuota komanda [yra „Shell“ įmontuota # -a leidžia rasti katalogus, kuriuose yra # vykdomoji programa su užrašytu vardu. [yra / usr / bin / [

ulimit: riboja tam tikrų sistemos išteklių prieigą ir naudojimą procesams, idealiai tinka programoms, leidžiančioms atlikti administracinius pakeitimus arba skirtoms skirtingų tipų vartotojams. Nustatydami ribą, mes parašome skaičių, nurodantį ribos kilobaitus.

#Matome mūsų dabartines ribas ulimit –a # -f leidžia apriboti vartotojus, kad jie negalėtų # kurti didesnių nei 512000 Kb (500 # MB) failų. Ulimit –f 512000 # -v riboja virtualiosios proceso atmintį. ulimit –v 512000

palaukite: palaukite, kol bus tęsiamas tam tikras procesas ar darbas.

# Scenarijus laukia, kol bus vykdomas pid # 2585 procesas

palauk 2585

Kitos naudingos komandos, kurias galime pridėti prie scenarijų, žymimos simboliais.

!!: vėl paleiskite paskutinę komandą

! wer: vykdo paskutinę komandą, kuri prasidėjo posakiu „wer“.

'==', '! =', '>', '<', '> =' ir '<=': reliaciniai operatoriai.

|: OR operatorius paprastai jungė du įprastus posakius.

: escape komanda, leidžianti formatuoti išraiškas. Pvz .: a - garsiniam įspėjimui, n - naujai eilutei, b - grįžtamam klavišui ir kt.

Ačiū Juanui Carlosui Ortizui!