Iterative Fibonacci Function Example
Sadržaj:
- Standardna šiška za petlju
- Petlja preko struna
- Petlja preko raspona broja
- Petljajte preko elemenata niza
- Bash za petlju u stilu C
- Prekid i nastavak izjava
- Izjava o prekidu
- Nastavite izjavu
- Bash za primjere petlje
- Preimenovanje datoteka s razmacima u nazivu datoteke
- Promjena proširenja datoteke
- Zaključak
Petlje su jedan od temeljnih koncepata programskih jezika. Petlje je zgodno kad želite izvršavati niz naredbi iznova i iznova dok se ne postigne određeni uvjet.
U jezicima skriptiranja poput Bash-a, petlje su korisne za automatizaciju ponavljajućih zadataka.
U scenariju Bash postoje tri osnovne konstrukcije petlje, za petlju, petlju i do petlje.
U ovom ćemo udžbeniku opisati osnove za petlje na Bash-u. Također ćemo vam pokazati kako koristiti iscjedak i naredne izjave za promjenu toka petlje.
Standardna šiška za petlju
Petlja for radira preko popisa stavki i izvršava zadani skup naredbi.
Bash for petlja ima sljedeći oblik:
for item in do done
Popis može biti niz niza odvojenih razmacima, rasponom brojeva, izlazom naredbe, nizom i tako dalje.
Petlja preko struna
U primjeru ispod petlje će se ponavljati svaka stavka na popisu nizova, a varijabilni
element
bit će postavljen na trenutnu stavku.
for element in Hydrogen Helium Lithium Beryllium do echo "Element: $element" done
Petlja će proizvesti sljedeći izlaz:
Element: Hydrogen Element: Helium Element: Lithium Element: Beryllium
Petlja preko raspona broja
Možete koristiti izraz sekvence da odredite raspon brojeva ili znakova definiranjem početne i krajnje točke raspona. Izraz sekvence ima sljedeći oblik:
{START..END}
U primjeru ispod petlje će se ponoviti kroz sve brojeve od 0 do 3.
for i in {0..3} do echo "Number: $i" done
Number: 0 Number: 1 Number: 2 Number: 3
Počevši od Bash 4, također je moguće odrediti priraštaj pri korištenju raspona. Izraz poprima sljedeći oblik:
{START..END..INCREMENT}
for i in {0..20..5} do echo "Number: $i" done
Number: 0 Number: 5 Number: 10 Number: 15 Number: 20
Petljajte preko elemenata niza
Možete koristiti i petlju za ponavljanje niza elemenata:
U primjeru u nastavku, definiramo niz
BOOKS
i ponavljamo preko svakog elementa matrice.
BOOKS=('In Search of Lost Time' 'Don Quixote' 'Ulysses' 'The Great Gatsby') for book in "${BOOKS}"; do echo "Book: $book" done
Book: In Search of Lost Time Book: Don Quixote Book: Ulysses Book: The Great Gatsby
Bash za petlju u stilu C
Sintaksa C-stila za petlju poprima sljedeći oblik:
for ((INITIALIZATION; TEST; STEP)) do done
Dio
INITIALIZATION
izvršava se samo jednom kada se pokreće petlja. Zatim se procjenjuje dio
TEST
. Ako je netočno, petlja se ukida. Ako je
TEST
istina, izvršavaju se naredbe unutar tijela za petlju i ažurira se dio
STEP
.
U sljedećem kodu petlja se označava zvjezdicom inicijalizacijom
i = 0
, a zatim prije svake iteracije provjerava je li
i ≤ 10
. Ako je točno, ispisuje trenutnu vrijednost
i
i
i
sa 1 (
i++
), u suprotnom petlja prestaje.
for ((i = 0; i <= 1000; i++)); do echo "Counter: $i" done
Petlja će se ponoviti 1001 puta i proizvesti sljedeći izlaz:
Counter: 0 Counter: 1 Counter: 2… Counter: 998 Counter: 999 Counter: 1000
Prekid i nastavak izjava
Izjave prekida i nastavka mogu se koristiti za kontrolu izvršenja petlje.
Izjava o prekidu
Izjava o prekidu prekida trenutnu petlju i prepušta programsku kontrolu izjava koja slijedi zaključenu izjavu. Obično se koristi za zaustavljanje petlje kad je ispunjen određeni uvjet.
U sljedećem primjeru koristimo naredbu if za zaustavljanje izvršenja petlje nakon što je trenutna iterirana stavka jednaka 'Lithium'.
for element in Hydrogen Helium Lithium Beryllium; do if]; then break fi echo "Element: $element" done echo 'All Done!'
Element: Hydrogen Element: Helium All Done!
Nastavite izjavu
Izjava nastavi izlazi iz trenutne iteracije petlje i prebacuje programsku kontrolu na sljedeću iteraciju petlje.
U sljedećem primjeru ponavljamo kroz niz brojeva, a kada je trenutna iterirana stavka jednaka '2', naredba za nastavak uzrokovat će da se izvršenje vrati na početak petlje i da nastavi s sljedećom ponavljanjem.
for i in {1..5}; do if]; then continue fi echo "Number: $i" done
Number: 1 Number: 3 Number: 4 Number: 5
Bash za primjere petlje
Preimenovanje datoteka s razmacima u nazivu datoteke
Sljedeći primjer prikazuje kako pomoću petlje Bash for preimenovati sve datoteke u trenutnoj mapi s razmakom u njezinim imenima zamjenom razmaka u podcrtavanje.
for file in *\ *; do mv "$file" "${file// /_}" done
Raščlanimo kodni redak po red:
- Prvi redak stvara for za petlju i ponavlja kroz popis svih datoteka s razmakom u svom nazivu. Izraz
*\ *
stvara popis. Drugi redak odnosi se na svaku stavku popisa i premješta datoteku u novi koji zamjenjuje razmak podcjenom (_
). Dio${file// /_}
koristi proširenje parametra ljuske da bi zamijenio uzorak u parametru nizom.done
označava kraj segmenta petlje.
Promjena proširenja datoteke
Sljedeći primjer prikazuje kako pomoću Bash for petlje preimenovati sve datoteke koje završavaju s.jpeg u trenutnoj mapi zamjenom ekstenzije datoteke s.jpeg u.jpg.
for file in *.jpeg; do mv -- "$file" "${file%.jpeg}.jpg" done
Analizirajmo kod po liniju:
- Prvi redak stvara for za petlju i ponavlja kroz popis svih datoteka koje završavaju s '.jpeg'. Drugi redak odnosi se na svaku stavku popisa i premješta datoteku u novu zamjenjujući '.jpeg' s '.jpg',
${file%.jpeg}
uklanja dio '.jpeg' iz naziva datoteke upotrebom proširenog parametra ljuske koji označava kraj segmenta petlje.
Zaključak
Do sad biste trebali dobro razumjeti kako koristiti bash za petlju za ponavljanje po popisima.
bash petlja terminalMicrosoft Research Azija domaćini Gates na 10 godina Bash

Microsoft Research Asia je narasla od desetak ljudi 1998. godine na više od 350 desetljeća kasnije.
Kako pokrenuti Bash na Ubuntu na Windows 10

Omogućivanje podsustava sustava Windows za Linux omogućit će vam da pokrenete Bash na Ubuntu na Windows 10, Bash skripte , Linux alati naredbenog retka, prvi alati za Linux
Bash nizovi

Nizovi su jedna od najčešće korištenih i temeljnih struktura podataka. U ovom ćemo članku pokriti Bash nizove i objasniti ih kako ih koristiti u vašim Bash skriptama.