Programiranje v bash - 2. del

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
Hvala Juan Carlos Ortiz!

Dodaj kot prednostni vir v Googlu