Bash “Līdz” cilpa: apmācība un piemēri

Ciklas “līdz” izmantošana Bash skriptā, lai pārietu uz komandu(-ām).

Bash (Bourne Again Shell) ir apvalka komandu uzvedne un skriptu valoda GNU/Linux operētājsistēmās. Tas ir noklusējuma apvalks lielākajai daļai Linux izplatījumu.

Tāpat kā lielākā daļa skriptu valodu, Bash nodrošina cilpas sintakses, lai vairākas reizes atkārtotu līdzīgus uzdevumus. Šajā rakstā mēs uzzināsim, kā izmantot līdz cilpa Bash.

Ievads

The līdz cilpa programmā Bash tiek izmantota, lai vairākas reizes izpildītu komandu(-as) (izpildītās komandas), pamatojoties uz citas komandas(-u) izvadi (nosacījuma komandas). Izpildītās komandas turpinās darboties, līdz nosacījuma komanda neizdosies (t.i., atgriež statusu, kas nav nulle. Jebkura Linux komanda atgriež 0 par veiksmi un veselu skaitli, kas nav nulle, ja neizdodas). Tas ir tieši pretējs kamēr cilpa, kurā izpildītās komandas turpina darboties, līdz nosacījuma komanda ir veiksmīga.

Ja ir vairākas nosacījumu komandas, priekšraksts ņem vērā tikai pēdējās komandas statusu sarakstā, t.i., cilpa darbosies, līdz pēdējā komanda sarakstā turpinās nedarboties.

Vispārējā sintakse

Vispārējā sintakse priekš līdz cilpa valodā Bash ir:

līdz izdarīts

Izpildes komandu saraksts darbosies, līdz pēdējā komanda nosacījumu komandu sarakstā neizdosies. Kad pēdējā komanda ir veiksmīga, cilpa iziet.

Lietotāji komandu sarakstos var norādīt jebkuru izpildāmo failu. Tās var būt standarta Linux programmas vai pielāgotas lietotāja programmas vai skripti. Katrai komandai jābūt vai nu jaunā rindā, vai jāatdala ar semikolu tajā pašā rindā.

Apskatīsim dažus piemērus.

Cilpa, līdz mainīgajam ir noteikta vērtība: Sekojošā cilpa tiek izpildīta līdz mainīgā vērtībai x ir 10.

x=0 līdz [[ $x -eq 10 ]] izdara atbalsi $x ((x++))

Katrā iterācijā mēs pārbaudām, vai x vērtība ir 10. Vērtība tiek pārbaudīta, izmantojot pārbaude komandu. [[ Izteiksme ]] ir testa komandas sintakse (sk cilvēka tests).

Tad iekšā darīt... darīts bloku, mēs vienkārši izdrukājam x vērtību un palielinām to. Cilpa iziet, tiklīdz nosacījuma komanda ir veiksmīga, t.i., kad $x ir vienāds ar 10.

Piezīme: Indeksa mainīgais, kas jāizmanto cilpā “līdz” ir jāinicializē vai nu pirms cilpas “līdz” vai nosacījumu komandās, atšķirībā no for loop, kas ļauj inicializēt mainīgo netieši.

Ar vairākām nosacījumu komandām: Sekojošā cilpa izveido 5 nosauktus direktorijus dir0, dir1, ... dir4.

z=0 līdz atbalss "Hi" echo "Bye" [[ $z -eq 5 ]] do atbalss "Izveido dir$z..." mkdir dir$z ((z++)) pabeigts

Pirmās komandas atbalsojas “Hi” un atbalss “Bye” tiks izpildītas vienreiz. to panākumi vai neveiksmes nekādi neietekmē cik ilgi cilpa darbosies.

Pēc tam tiks izpildīta testa komanda mainīgā z vērtības pārbaudei. Kamēr šī komanda neizdodas, t.i., līdz z vērtība nav 5, nosacījumu komandas un izpildītās komandas turpina darboties kārtībā. Šeit katrai iterācijai vispirms tiks izpildītas 2 atbalss komandas stāvoklī un pēc tam trešā nosacījuma komanda pārbauda z vērtību. Ja tas nav 5, tas ieiet cilpā un izpilda dotās komandas.

Pārtraukt un turpināt

Pārtraukuma paziņojums par nosacījumu iziešanai

Mēs varam izmantot arī nosacījumu paziņojumu ja cilpas iekšpusē. The ja paziņojumu var izmantot ar a pārtraukums paziņojums par nosacītu izeju no cilpas.

x=0 līdz [[ $x -eq 10 ]] dariet, ja [[ $x -eq 5 ]] break fi echo $x ((x++)) izdarīts

Iepriekš minētā līdz cilpa izdrukās skaitļus no 0 līdz 4. Kad i vērtība ir 5, tā izkļūs no cilpas. Tas ir īpaši noderīgi, ja ir jāiziet no cilpas, kad komanda dod noteiktu izvadi.

Turpiniet paziņojumu, lai izlaistu iterāciju ar nosacījumiem

Bašam ir arī a Turpināt paziņojums, lai izlaistu atlikušo iterācijas daļu ciklā, ja ir izpildīts konkrēts nosacījums.

x=0 līdz [[ $x -eq 10 ]] darīt, ja [[ $x -eq 5 ]] turpināt fi echo $x ((x++)) izdarīts

Iepriekš minētā cilpa izdrukās skaitļus no 0 līdz 10, izņemot 5, jo iterācijas laikā x=5 ir turpināt priekšraksts, kas izlaidīs pārējo kodu cilpas sākumā ar iterāciju x=6.

Cilpu izmantošana: skripti un komandrinda

Cilpas sintakses var izmantot Bash apvalkā tieši vai no izpildāmā čaulas skripta faila. Līdzīgs priekš un kamēr cilpas, vienreiz an līdz čaulā tiek ievadīta cilpas sintakse, apvalks turpina uzvedni, lai ļautu lietotājam turpināt cilpas komandas.

Vai arī lietotājs var to saglabāt skripta failā un izpildīt skripta failu.

The #!/bin/bash sākumā norāda tulku, kas tiks izmantots, kad fails tiek izpildīts. Lai gan Bash ir mūsdienās visbiežāk izmantotais apvalks, daži lietotāji dod priekšroku tādiem apvalkiem kā zsh, kas jānorāda bash vietā šī faila sākumā.

Lai piešķirtu izpildes atļaujas šim failam palaidiet:

chmod +x test.sh

Visbeidzot, lai izpildītu failu, palaist:

./test.sh

Secinājums

The līdz cilpa ir vēl viena svarīga Bash skriptēšanas funkcija. Tam ir īpaša nozīme sarežģītos skriptos, kad tiek sagaidīts, ka noteikta programmu kopa atgriezīs neveiksmes statusu un ir jāizpilda kāda(-as) cita(-as) komanda(-as), lai reģistrētu kļūdu, detalizēti parādītu kļūdu vai vienkārši izpildītu dažas alternatīvas programmas.