Kako koristiti BASH za petlju



Isprobajte Naš Instrument Za Uklanjanje Problema

Jedan od najosnovnijih trikova prilikom izrade bash skripti uključuje izradu petlje tako da se određeni zadatak može automatski izvršiti nekoliko puta. Na kraju, petlja će doseći unaprijed određene uvjete ispitivanja i odjednom će se prestati izvršavati. Petlje poput ove savršeno će raditi u bashu na Linuxu i macOS-u, kao i u bash ljusci unutar sustava Windows 10, pa čak i u raznim školjkama u FreeBSD-u. Naravno, u bilo koju petlju možete napisati bilo koju naredbu koju želite i zadržati bilo koji postupak koliko god želite. Iako ćemo napisati neke izuzetno jednostavne petlje, pomoću tih vještina možete kreirati sve vrste skripti koje želite.



Postoji mnogo načina da započnete pisati skriptu, ali za ovu raspravu pretpostavit ćemo da ste otvorili naredbeni redak bilo pretraživanjem terminala na Crtici, klikom na njega u izbornicima KDE, MATE, LX ili Whisker ili držanjem Ctrl, Alt i T istovremeno. Iako ćemo o vi / vim i nano razgovarati kao o urednicima, pitanje kojeg urednika koristiti prilično je osobno i mogli biste raditi sa svime što vam je ugodno.



Metoda 1: Do Loop

Možda najosnovnija petlja u bashu je loop. Izvršit će naredbe sve dok testni uvjet koji postavite ne postane istinit. Pretpostavit ćemo da ste upotrijebili ili nano ili vi za otvaranje nepostojeće datoteke nazvane till.sh i spremni ste u nju umetnuti novi tekst. Napravit ćemo samo nešto što broji do 20 na vašem terminalu kako bi to u početku bilo lako.



Za početak unesite sljedeće:

#! / bin / bash

n = 0



do [$ n -gt 20]

čini

odjek $ n

((n ++))

gotovo

Ako upotrebljavate nano, spremite ga tako da držite pritisnutu tipku Ctrl i zatim pritisnete O i na kraju X za izlaz. Korisnici vi će htjeti pritisnuti escape, a zatim upišite: wq za spremanje i izlaz.

Sljedeći tip chmod + x do Loop na upit da ga učinite izvršnim, a zatim upišite ./untilLoop pokrenuti ga. Jednom kad se pokrene, petlja će nastaviti ispisivati ​​nove brojeve na vašem terminalu dok n varijabla ne dosegne 20.

Inače, prvi redak govori vašoj okolini koju školjku treba učitati pri radu s ovim skriptama. Neki programeri savjetuju samo upotrebu #! / Bin / sh kako bi osigurali da se vaša skripta pridržava određenih POSIX standarda, ali ove jednostavne skripte ne bi trebale imati problema s velikom većinom modernih sustava.

Metoda 2: for Loop

Petlja for pregledava svaku stavku na danom popisu, a zatim izvodi zadani skup naredbi na tom popisu. Napravit ćemo onaj koji ispisuje neka imena operativnih sustava, ali imajte na umu da biste s tim mogli učiniti bilo što ako želite.

Upišite bilo nano zaLoop ili mi forLoop u naredbenom retku i počnite unositi ovu sljedeću skriptu. Korisnici vi morat će ući u način umetanja prije nego što to učine.

#! / bin / bash

unices = 'GNU / Linux FreeBSD OpenBSD NetBSD Solaris OpenIndiana Darwin HP-UX Minix'

za unix u $ unices

čini

odjek $ unix

gotovo

Ponovno spremite datoteku koristeći Ctrl + O, a zatim Ctrl + X metodu u nano ili Esc tada: wq metodu u vi prije izdavanja naredbe chmod + x zaLoop kako bi ga učinili izvršnim. Jednom kad ga pokrenete, pokrenite ga tipkanjem ./forLoop na brzinu. Petlja for prisiljava echo naredbu da redom radi na svakoj od stavki u varijabli unices. Mogli biste još jednom zamijeniti taj popis bilo kojim argumentom, a eho zamijeniti bilo kojom naredbom za automatizaciju dugih procesa.

3. metoda: Loop petlje

Počnite uređivati ​​treću datoteku koja se zove whileLoop pomoću nano, vi ili bilo kojeg drugog uređivača koji želite koristiti. Ako biste radije koristili grafički uređivač teksta, to biste zapravo mogli učiniti i sa bilo kojim od ovih projekata sve dok datoteku stavite u isti direktorij u kojem radite unutar naredbenog retka .

Unutar ove datoteke želite dodati redove:

#! / bin / bash

n = 0

dok [$ n -le 20]

čini

odjek $ n

((n ++))

gotovo

Spremite datoteku na isti način na koji ste spremili i ostale, a zatim izađite iz uređivača teksta. Nakon što izađete, izdajte naredbu chmod + x whileLoop kako bi vam omogućio da ga izvršite i zatim pokrenete ./ whileLoop pokrenuti ga. Vidjet ćete isti izlaz koji je izašao iz skripte tillLoop iz prve metode jer broji od 0 do 20 u više nego vjerojatno djeliću sekunde.

Ovo je izvrsna demonstracija činjenice da postoji više načina da se to učini kad god radite s petljama na ovaj način. Iako tehnički ne postoji pogrešan način, vjerojatno ćete naići na autore skripti koji tvrde da biste svoje skripte trebali pisati bliže načinu na koji to čini programski jezik C ili, pak, drugi mogu sugerirati da to ne biste trebali raditi. Iskreno, vjerojatno postoji mnogo točnih načina za rješavanje problema.

Slobodno izbrišite svoje skripte kad završite s vježbanjem s njima.

3 minute čitanja