Programmēšana bash - 2. daļa

Otrā daļa no tā mini apmācība programmēšana Stipri iesist, kur mēs iemācāmies izmantot ciclos un citi rīki, kas palīdzēs mums uzlabot mūsu funkcionalitāti skripti.

Ja nosacīts

Ja funkcija ir lietot filtru un veikt darbību vai uzdevumu katram izmantotajam filtram. Tās struktūra ir šāda:

Ja [nosacījums]; tad elif komandas [nosacījums]; tad vēl komandas; fi komandas

Piemērs ir parādīts blakus cilpu For attiecīgajā sadaļā.

Cikli

1. Kamēr: tas izpildīs visas komandas, kas norādītas starp do un done, kamēr nosacījums ir patiess. Ja mēs vēlamies tam nodot salīdzināšanas operatorus, izteicienam jābūt iekavās.

kamēr CONDITION / COMMAND izpilda komandas

Piemērs: skaitļa reizināšanas tabula

#! / bin / bash X = 1 atbalss "Ievadiet skaitli un nospiediet taustiņu ENTER" lasiet M #Cilpa kontrolē, ka X ir mazāks vai vienāds ar 10, bet [$ X –le 10] do # IN mēs glabājam reizinājumu X ar MR = $ [X * M] # Šis reizinājums tiek uzdrukāts uz ekrāna atbalss "$ M * $ X = $ R" #Atļaujot, mēs palielinām X vērtību par 1 vienību, ļaujiet X = $ X + 1 izdarīt

2. For: saglabā mainīgo elementu sarakstu, kas tiks izmantots, lai veiktu noteiktas darbības ar katru ciklu.

VARIABLE elementā ELEMENTS veic komandas

Piemērs: programma, kas kopē failu no vienas mapes uz citu, aizstājot veco failu.

# / bin / bash # Mēs izveidojam avota un mērķa direktorijus ORIGIN = / home / user / Downloads DESTINATION = / home / user / Documents # Mēs pozicionējam sevi avota CD $ ORIGIN # No visiem failiem mēs vēlamies tikai to, kas ir # call FILE for FILE * do ARCH-DESTINATION = "$ DESTINATION / $ FILE" # -f filtrē mūs parastos failus, jo direktoriji mums # nav nekas labs. –Nt filtrē # failus “jaunākus” nekā tie, kas atrodas # mērķa mapē, ja [-f $ FILE] && [$ FILE –nt $ ARCH-DESTINATION]; tad atbalss "$ FILE kopēšana ..." # mēs kopējam failu ar cp cp $ FILE $ ARCH-DESTINATION fi done #We cd, lai izietu no avota mapes cd

Vēl viens piemērs: skripts, kurā lietotājam jāuzmin datora ģenerēts nejaušs skaitlis.

# / bin / bash # Nejaušs skaitlis tiek ģenerēts no 1 līdz 10, tas # tiek saglabāts RANDOM RANDOM = $ [$ RANDOM% 10 + 1], savukārt [1] veic atbalss –n “Ievadiet numuru:“ lasiet NUM # Salīdziniet, ja lietotāja izvēlētais skaitlis ir # vienāds ar RANDOM; atcerieties izmantot $, lai novērtētu mainīgo # vērtības, nevis to nosaukumus, ja [“$ NUM –eq“ $ RANDOM ”]; tad atbalss "Tev viss ir pareizi!" # break ļauj pārtraukt cilpu, kamēr pārtraukums # Ja skaitlis ir mazāks par RANDOM elif [“$ NUM –gt“ $ RANDOM ”]; tad atbalss "Tas ir mazāk" "Ja nē, tas ir lielāks nekā RANDOM, pārējais atbalss" IR lielāks "ir izdarīts

3. Līdz: pēc struktūras ir diezgan līdzīgs kamēr, izņemot to, ka kods vienmēr tiek izpildīts, kamēr nosacījuma novērtējums ir negatīvs, tas ir, programma turpina izpildīt "līdz nosacījuma iestāšanās brīdim"

līdz CONDITION / COMMAND veic komandas

Piemērs: izdrukājiet skaitļus 10-20 dilstošā secībā

#! / bin / bash CONT = 20 # Kamēr skaitītājs ir mazāks par 10 (-lt, "zemāks # nekā"), kods tiek izpildīts līdz [$ CONT -lt 10]; do echo "COUNTER $ CONT" #A CONT tiek atņemta ar vienību, kas ļauj CONT- = 1 izdarīt

4. Atlasīt: šis pēdējais cikls ir īpašs gadījums, jo to parasti izmanto, lai ātri izveidotu izvēlnes. Tas darbojas līdzīgi kā cilpa For.

izvēlēto VARIABLE izpildīto komandu sarakstā

Piemērs: dodiet lietotājam iespēju turpināt vai beigt skriptu.

#! / bin / bash #item ir mainīgais, kas reaģē uz to, ko izvēlas # lietotājs, Turpināt un Pabeigt ir # pieejamās opcijas, lai gan citas opcijas var pievienot # vēl atlasiet vienumu sadaļā Turpināt Pabeigt dariet # Ja lietotājs izvēlas beigt programmu, tad ar pārtraukumu mēs izejam no cikla. ja [$ item = "Pabeigt"]; tad pārtraukums fi darīts
Paldies Huanam Karlosam Ortizam!