|
Drugi del tega mini vadnica programiranje v Bash, kjer se naučimo uporabljati cikli in druga orodja, ki nam bodo pomagala izboljšati funkcionalnost našega skripte. |
Če je pogojno
Funkcija If je, da uporabi filter in izvede operacijo ali nalogo za vsako vrsto uporabljenega filtra. Njegova struktura je naslednja:
Če [pogoj]; nato ukazi elif [stanje]; nato še ukazi; ukazi fi
Primer je prikazan poleg zanke For v ustreznem odseku.
Cikli
1. While: Ta zanka bo izvedla vse ukaze, določene med do in done, dokler je pogoj resničen. Če želite posredovati operatorje primerjave, mora biti izraz zaprt v oglatih oklepajih.
medtem ko CONDITION / COMMAND naredi ukaze dokončane
Primer: tabela množenja števila
#! / bin / bash X = 1 echo "Vnesite številko in pritisnite ENTER" beri M # Zanka nadzoruje, da je X manjše ali enako 10, medtem ko [$ X –le 10] do #In R shranimo množenje X z MR = $ [X * M] #To množenje se natisne na odmev zaslona "$ M * $ X = $ R" # S letom povečamo vrednost X za 1 enoto, naj X = $ X + 1 končano
2. Za: shrani seznam elementov v spremenljivko, ki bo uporabljena za izvajanje določenih operacij z vsako zanko.
za VARIABLE v ELEMENTS naredite ukaze dokončane
Primer: program, ki kopira datoteko iz ene mape v drugo in nadomesti staro datoteko.
# / bin / bash # Vzpostavimo izvorni in ciljni imenik ORIGIN = / home / user / Downloads DESTINATION = / home / user / Documents # Postavimo se v izvorni cd $ ORIGIN # Od vseh datotek želimo samo tisto, ki je # call FILE for FILE v * do ARCH-DESTINATION = "$ DESTINATION / $ FILE" # -f nam filtrira običajne datoteke, saj nam imeniki # nič ne koristijo. –Ne odstrani # datotek, ki so "novejše" od tistih, # ki jih najdemo v ciljni mapi, če [-f $ FILE] && [$ FILE –nt $ ARCH-DESTINATION]; nato odmeva "Kopiranje $ FILE ..." # kopiramo datoteko s cp cp $ FILE $ ARCH-DESTINATION fi končano # Za izhod iz izvorne mape cd naredimo cd
Drug primer: skript, kjer mora uporabnik uganiti naključno število, ki ga ustvari računalnik.
# / bin / bash # Naključno število se ustvari od 1 do 10, # se shrani v RANDOM RANDOM = $ [$ RANDOM% 10 + 1], medtem ko [1] do echo –n "Vnesite številko:" preberite NUM # Primerjaj, če je številka, ki jo je izbral uporabnik, enaka RANDOM; ne pozabite uporabiti $ za ovrednotenje # vrednosti spremenljivk in ne njihovih imen, če [“$ NUM –eq“ $ RANDOM ”]; nato odmev "Prav ste razumeli!" #break omogoča končanje zanke med prekinitvijo # Če je število manjše od RANDOM elif [“$ NUM –gt“ $ RANDOM ”]; potem odmev "Manj je" "Če ne, je večji od RANDOM, sicer odmev" JE večji "fi
3. Until: po strukturi precej podoben funkciji While, le da se koda vedno izvaja, dokler je pogoj negativno ovrednoten, torej se program izvaja, »dokler se pogoj ne pojavi«
dokler CONDITION / COMMAND ne naredi ukazov
Primer: številke 10-20 natisnite v padajočem vrstnem redu
#! / bin / bash CONT = 20 # Dokler je števec manjši od 10 (-lt, “nižje # od”), se koda izvaja do [$ CONT -lt 10]; do echo "COUNTER $ CONT" #A CONT se odšteje z enoto, naj bo CONT- = 1 končano
4. Select: Ta zadnja zanka je poseben primer, saj se običajno uporablja za hitro ustvarjanje menijev. Deluje podobno kot zanka For.
na seznamu izvedenih ukazov izberite VARIABLE
Primer: uporabniku omogočite nadaljevanje ali konec skripta.
#! / bin / bash #item je spremenljivka, ki se odziva na izbiro # uporabnika, Nadaljuj in Dokončaj sta # možnosti, ki so mu na voljo, čeprav je mogoče dodati še druge možnosti # več izberite element v Nadaljuj Dokončaj naredi # Če uporabnik izbere konec programa, nato s prekinitvijo zapustimo cikel. če [$ item = "Finish"]; nato prekinite fi končano