Komande, sintaksa i primeri
Možete izvršiti niz naredbi tako što ih upisujete u datoteku skripte i zatim pokrenete.
Skriptna datoteka je jednostavno tekstualna datoteka, obično sa ekstenzijom datoteke .SH, koja sadrži niz instrukcija koje se takođe mogu izvršiti iz komandne linije ( shell ).
Tokom Loop primera
Ispod je primer petlje. Kada se izvrši, ova datoteka skripta će odštampati brojeve od 1 do 9 na ekranu. Izjava "while-statement" vam daje više fleksibilnosti za preciziranje stanja prekida nego for-petlje .
#! / bin / bash count = 1 dok [$ count -le 9] echo "$ count" sleep 1 ((count ++)) učinjenoNa primer, prethodnu skriptu možete napraviti beskonačnom petlju tako što ćete izostaviti izjavu o inkretiranju "((broj ++))":
#! / bin / bash count = 1 dok [$ count -le 9] echo "$ count" sleep 1 doneIzjava "sleep 1" pauzira izvršenje za 1 sekundu na svakoj iteraciji. Koristite prečicu tastera Ctrl + C da biste prekinuli proces.
Takođe možete kreirati beskonačnu petlju tako što ćete staviti debelo crevo kao uslov:
#! / bin / bash count = 1 dok: uradite echo "$ count" sleep 1 ((count ++))Da biste koristili više uslova u toku petlje, morate koristiti notu dvostrukog kvadrata:
count = 1 done = 0 dok [[$ count -le 9] && [$ done == 0]] echo "$ count" sleep 1 ((broj ++)) ako [$ count == 5]; onda je $ done = 1 završenoU ovom scenariju, promenljiva "done" se inicijalizuje na 0, a zatim se postavi na 1 kada broj dostigne 5. Stanje petlje kaže da će petlja trajati dok se "brojanje" smanji na devet i "izvrši" jednako na nulu. Prema tome, petlje izlaze kada je broj jednak 5.
"&&" označava logičke "i" i "||" znači logičan "ili".
Alternativna notacija za konjunkciju "i" i "ili" u uslovima je "-a" i "-o" sa jednakim kvadratnim zagradama. Gore navedeno stanje:
[[$ count -le 9] && [$ done == 0]]... mogla bi biti prepisana kao:
[$ count -le 9] -a [$ done == 0]Čitanje tekstualne datoteke obično se vrši uz pomoć petlje. U narednom primjeru, bash skripta čita liniju sadržaja linijom datoteke pod imenom "inventory.txt:"
FILE = inventory.txt exec 6Prva linija dodeljuje ime ulazne datoteke promenljivici "FILE". Druga linija čuva "standardni ulaz" u opisu datoteke "6" (to može biti bilo koja vrijednost između 3 i 9). Ovo je učinjeno tako da se "standardni unos" može vratiti na deskriptor datoteke "0" na kraju skripte (pogledajte izraz "exec 0 U trećoj liniji ulazna datoteka se dodjeljuje descriptoru datoteke" 0 ", koji se koristi za standardni unos. Pročitaj "pročitaj" tada čita liniju iz fajla na svakoj iteraciji i dodeljuje je promenama "line1".
Da biste prerano izašli iz nekog vremena, možete koristiti ovakav prekid:
count = 1 done = 0 dok [$ count -le 9] echo "$ count" sleep 1 ((count ++)) ako [$ count == 5] onda razbije fi done echo FinishedIzjava o prekidu preskoči izvršenje programa do kraja dok je petlja i izvršava sve naredbe koje slede. U ovom slučaju, izjava "echo Finished."
Izjava o nastavku, s druge strane, preskoči samo ostatak naredbe petlje trenutne iteracije i skok direktno na sledeću iteraciju:
count = 1 done = 0 dok [$ count -le 9] spavaj 1 ((broj ++)) ako [$ count == 5] nastavi f echo "$ count" done echo FinishedU ovom slučaju, nastavak "nastavi" se izvršava kada varijabla "broj" dostigne 5. Ovo znači da se naredna izjava (echo "$ count") ne izvršava na ovoj iteraciji (kada je vrednost "broj" 5).