Naredbe, sintakse i primjeri
Možete izvršiti niz naredbi tako da ih zapišete u datoteku skripte, a zatim pokrenete.
Skripta je jednostavno tekstualna datoteka, obično s nastavkom .SH datoteke, koja sadrži niz uputa koje se također mogu izvršiti iz naredbenog retka ( shell ).
Dok su primjeri petlji
Ispod je primjer kratke petlje. Kada se izvrši, ova datoteka skripta će ispisati brojeve od 1 do 9 na zaslonu. While-statement vam daje veću fleksibilnost za određivanje uvjeta prestanka od for-loop .
#! / bin / bash count = 1 dok [$ count -le 9] odjekuje "$ count" sleep 1 ((count ++)) učinjenoPrimjerice, prethodnu skriptu možete napraviti beskonačnu petlju tako što ćete izostaviti izjavu o prirastu "((count ++))":
#! / bin / bash count = 1 dok [$ count -le 9] echo "$ count" spava 1 učinioIzjava "sleep 1" zaustavlja izvršavanje 1 sekundu na svakoj iteraciji. Koristite tipkovnički prečac Ctrl + C da biste prekinuli postupak.
Također možete stvoriti beskonačnu petlju stavljanjem dvotočke kao uvjet:
#! / bin / bash count = 1 dok: echo "$ count" sleep 1 ((count ++)) učinjenoDa biste koristili više uvjeta u mikroprocesu, morate upotrijebiti dvostruki kvadratni zaglavni okvir:
count [1] (count + +)) ako [[count count == 5]; a zatim učinjeno $ done = 1 fiU ovoj skripti varijabla "done" je inicijalizirana na 0, a zatim postavljena na 1 kada broj dosegne 5. Stanje petlje navodi da će se petlja nastaviti dok god "broj" bude manje od devet, a "učinjeno" je jednako na nulu. Stoga petlje izlaze kada je broj jednak 5.
"&&" znači logičan "i" i "||" znači logično "ili".
Alternativni zapis za poveznice "i" i "ili" u uvjetima je "-a" i "-o" sa pojedinačnim kvadratnim zagradama. Gore navedeno stanje:
[[$ count -le 9] && [$ done == 0]]... može se prepisati kao:
[$ count -le 9] -a [$ done == 0]Čitanje tekstualne datoteke obično se radi s petlja. U sljedećem primjeru skripta bash čita redak sadržaja redakom datoteke "inventory.txt:"
FILE = inventory.txt exec 6Prva linija dodjeljuje naziv ulazne datoteke u varijablu "FILE". Druga linija sprema "standardni ulaz" u deskriptor datoteka "6" (može biti bilo koja vrijednost između 3 i 9). To je učinjeno tako da se "standardni unos" može vratiti na deskriptor datoteka "0" na kraju skripte (vidi izjavu "exec 0 U 3. retku ulazna datoteka dodjeljuje deskriptoru datoteka" 0 ", koja se koristi za standardni unos. Izjava "očitana" čita redak iz datoteke na svakoj iteraciji i dodjeljuje ga promjenama "line1".
Da biste prerano izašli iz ciklusa vremena, možete upotrijebiti ovakvu izjavu:
[count count = 1 done = 0 dok [$ count -le 9] echo "$ count" sleep 1 ((count ++)) ako [$ count == 5]Izjavu o prekidu preskače izvršenje programa do kraja, a petlje i izvršava bilo koje izjave koje slijede. U ovom slučaju, izjava "Odjava je dovršena".
Izjava za nastavak, s druge strane, preskače samo ostatak izvješća trenutne iteracije i skokovi izravno na sljedeću iteraciju:
count = 1 done = 0 dok [$ count -le 9] spava 1 ((count ++)) ako [$ count == 5] zatim nastavlja fi echo "$ count"U tom se slučaju izjava "continue" izvodi kada varijabla "broj" dosegne 5. To znači da sljedeća izjava (echo "$ count") nije izvršena na ovoj iteraciji (kada je vrijednost "count" 5).