|
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