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.