Programavimas bash - 2 dalis

Antra dalis apie tai mini pamoka programavimas Bash, kur mes mokomės naudotis ciklai ir kitos priemonės, kurios padės mums pagerinti mūsų funkcionalumą scenarijai.

Jei sąlyginis

If funkcija yra pritaikyti filtrą ir atlikti operaciją ar užduotį kiekvienam pritaikytam filtro tipui. Jo struktūra yra tokia:

Jei [sąlyga]; tada elif komandos [sąlyga]; tada kitos komandos; fi komandos

Pavyzdys rodomas šalia „For“ kilpos atitinkamame skyriuje.

Dviračiai

1. While: Šis ciklas vykdys visas komandas, nurodytas tarp „do“ ir „done“, jei sąlyga bus teisinga. Jei norite perduoti palyginimo operatorius, išraiška turi būti laužtiniuose skliaustuose.

o CONDITION / COMMAND atlieka komandas

Pavyzdys: skaičiaus daugybos lentelė

#! / bin / bash X = 1 aidas „Įveskite skaičių ir paspauskite ENTER“ skaityti M #Kilpa valdo, kad X yra mažesnis arba lygus 10, o [$ X –le 10] #R išsaugome sandaugą X pagal MR = $ [X * M] # Šis dauginimas atspausdintas ekrane aidas "$ M * $ X = $ R" # Leidžiant padidinsime X vertę 1 vienetu, tegul X = $ X + 1 padaryta

2. For: kintamajame saugo elementų sąrašą, kuris bus naudojamas tam tikroms operacijoms atlikti su kiekvienu ciklu.

už VARIABLE in ELEMENTS atlikite komandas

Pavyzdys: programa, kuri nukopijuoja failą iš vieno aplanko į kitą, pakeisdama seną failą.

# / bin / bash # Mes nustatome šaltinių ir paskirties katalogus ORIGIN = / home / user / Downloads DESTINATION = / home / user / Documents # Mes įsitaisome šaltinio CD $ ORIGIN # Iš visų failų norime tik to, kuris yra # call FILE for file * do ARCH-DESTINATION = "$ DESTINATION / $ FILE" # -f filtruoja mums įprastus failus, nes katalogai mums # nieko gero. –Nt filtruoja # failus „naujesnius“ nei tie, kurie rasti paskirties aplanke, jei [-f $ FILE] && [$ FILE –nt $ ARCH-DESTINATION]; tada aidime "Kopijuojant $ FILE ..." # nukopijuojame failą su cp cp $ FILE $ ARCH-DESTINATION fi done #We cd išeiti iš šaltinio aplanko cd

Kitas pavyzdys: scenarijus, kuriame vartotojas turi atspėti atsitiktinį kompiuterio sugeneruotą skaičių.

# / bin / bash # Atsitiktinis skaičius sugeneruojamas nuo 1 iki 10, jis # išsaugomas RANDOM RANDOM = $ [$ RANDOM% 10 + 1], o [1] aidas –n „Įveskite skaičių:“ skaitykite NUM # Palyginkite, jei vartotojo pasirinktas skaičius yra # lygus RANDOM; nepamirškite naudoti $, kad įvertintumėte kintamųjų # reikšmes, o ne jų pavadinimus, jei [“$ NUM –eq“ $ RANDOM ”]; tada aidėk: "Tu gerai supratai!" # break leidžia baigti kilpą, o pertrauka #Jei skaičius yra mažesnis nei RANDOM elif [“$ NUM –gt“ $ RANDOM ”]; tada aidas "Tai mažiau" "Jei ne, tai didesnis nei RANDOM", kitas aidas "TAI IS" didesnis

3. „ Until“: struktūra gana panaši į „While“, išskyrus tai, kad kodas visada vykdomas, kol sąlyga įvertinama neigiamai, t. y. programa toliau vykdoma „kol įvyksta sąlyga“.

kol „CONDITION / COMMAND“ atliks komandas

Pavyzdys: atspausdinkite skaičius 10–20 mažėjančia tvarka

#! / bin / bash CONT = 20 # Kol skaitiklis yra mažesnis nei 10 (-lt, "žemesnis # nei"), kodas vykdomas iki [$ CONT -lt 10]; do echo „COUNTER $ CONT“ #A CONT atimamas vienetas, leidžiantis atlikti CONT- = 1

4. Pasirinkimas: Šis paskutinis ciklas yra ypatingas atvejis, nes jis paprastai naudojamas greitam meniu kūrimui. Jis veikia panašiai kaip ir „For“ ciklas.

Atliktų komandų sąraše pasirinkite KINTAMĄ

Pavyzdys: suteikite vartotojui galimybę tęsti arba baigti scenarijų.

#! / bin / bash #item yra kintamasis, reaguojantis į tai, ką # naudotojas pasirenka, „Tęsti ir Baigti“ yra jam prieinamos # parinktys, nors kitas parinktis galima pridėti dar # pasirinkite elementą skiltyje „Tęsti pabaigti“ # baigti programą, tada su pertrauka išeiname iš ciklo. jei [$ item = "Baigti"]; tada pertrauka padaryta
Ačiū Juanui Carlosui Ortizui!

Pridėti kaip pageidaujamą šaltinį „Google“ sistemoje