Android

Bash za petlju

Iterative Fibonacci Function Example

Iterative Fibonacci Function Example

Sadržaj:

Anonim

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 terminal