logo

Bash While Loop

În acest subiect, am demonstrat cum să folosiți instrucțiunea while loop în Bash Script.

The bash while loop poate fi definită ca o instrucțiune a fluxului de control care permite executarea setului dat de comenzi în mod repetat atâta timp cât condiția aplicată este evaluată la adevărată. De exemplu, putem fie să rulăm comanda echo de mai multe ori, fie să citim un fișier text linie cu linie și să procesăm rezultatul utilizând bucla while în Bash.

Sintaxa lui Bash While Loop

Loop-ul Bash while are următorul format:

vba
 while [ expression ]; do commands; multiple commands; done 

Sintaxa de mai sus este aplicabilă numai dacă expresia conține o singură condiție.

Dacă există mai multe condiții de inclus în expresie, atunci sintaxa buclei while va fi următoarea:

 while [ expressions ]; do commands; multiple commands; done 

Sintaxa pe o singură linie a buclei while poate fi definită astfel:

 while [ condition ]; do commands; done while control-command; do Commands; done 

Există câteva puncte cheie ale declarației „while loop”:

  • Condiția este verificată înainte de a executa comenzile.
  • Bucla „while” este, de asemenea, capabilă să efectueze toată munca pe care o poate face „bucla”.
  • Comenzile dintre „do” și „done” sunt executate în mod repetat atâta timp cât condiția este evaluată la adevărată.
  • Argumentele pentru o buclă „while” pot fi o expresie booleană.

Cum functioneaza

Bucla while este o buclă de intrare restricționată. Înseamnă că condiția este verificată înainte de a executa comenzile buclei while. Dacă condiția este evaluată la adevărat, setul de comenzi care urmează condiției sunt executate. În caz contrar, bucla este încheiată, iar controlul programului este dat celeilalte comenzi în urma instrucțiunii „terminat”.

Exemple de bucle Bash While

Următoarele sunt câteva exemple de buclă bash while:

Bucla While cu o singură condiție

În acest exemplu, bucla while este utilizată cu o singură condiție în expresie. Este exemplul de bază al buclei while care va imprima serii de numere conform introducerii utilizatorului:

Exemplu

 #!/bin/bash #Script to get specified numbers read -p 'Enter starting number: ' snum read -p 'Enter ending number: ' enum while [[ $snum -le $enum ]]; do echo $snum ((snum++)) done echo 'This is the sequence that you wanted.' 

Ieșire

Bash While Loop

Bucla While cu mai multe condiții

Următorul este un exemplu de buclă while cu mai multe condiții în expresie:

Exemplu

 #!/bin/bash #Script to get specified numbers read -p 'Enter starting number: ' snum read -p 'Enter ending number: ' enum while [[ $snum -lt $enum || $snum == $enum ]]; do echo $snum ((snum++)) done echo 'This is the sequence that you wanted.' 

Ieșire

instrument de tăiere în ubuntu
Bash While Loop

Buclă While infinită

O buclă infinită este o buclă care nu are sfârșit sau terminație. Dacă condiția se evaluează întotdeauna la adevărat, se creează o buclă infinită. Bucla se va executa continuu până când este oprită forțat folosind CTRL+C:

Exemplu

 #!/bin/bash #An infinite while loop while : do echo 'Welcome to Javatpoint.' done 

De asemenea, putem scrie scriptul de mai sus într-o singură linie ca:

 #!/bin/bash #An infinite while loop while :; do echo 'Welcome to Javatpoint.'; done 

Ieșire

Bash While Loop

Aici, am folosit comanda încorporată (:) care returnează întotdeauna adevărat. De asemenea, putem folosi comanda încorporată true pentru a crea o buclă infinită, la fel ca mai jos:

Exemplu

 #!/bin/bash #An infinite while loop while true do echo 'Welcome to Javatpoint' done 

Acest script bash va oferi, de asemenea, aceeași ieșire ca un script infinit de mai sus.

Notă: buclele infinite pot fi terminate folosind CTRL+C sau adăugând o ieșire condiționată în script.

While Loop cu o instrucțiune Break

O instrucțiune break poate fi folosită pentru a opri bucla conform condiției aplicate. De exemplu:

Exemplu

 #!/bin/bash #While Loop Example with a Break Statement echo 'Countdown for Website Launching...' i=10 while [ $i -ge 1 ] do if [ $i == 2 ] then echo 'Mission Aborted, Some Technical Error Found.' break fi echo '$i' (( i-- )) done 

Ieșire

Conform scriptului, bucla este atribuită să repete de zece ori. Dar există o condiție după opt ori de iterație care va întrerupe iterația și va termina bucla. Următoarea ieșire va fi afișată după executarea scriptului.

Bash While Loop

Buclă While cu o instrucțiune Continue

O instrucțiune continue poate fi folosită pentru a sări peste iterația pentru o anumită condiție din bucla while.

în java

Exemplu

 #!/bin/bash #While Loop Example with a Continue Statement i=0 while [ $i -le 10 ] do ((i++)) if [[ '$i' == 5 ]]; then continue fi echo 'Current Number : $i' done echo 'Skipped number 5 using Continue Statement.' 

Ieșire

Bash While Loop

While Loop cu C-Style

De asemenea, putem scrie bucla while în scriptul bash la fel de asemănător cu o buclă while în limbajul de programare C.

Exemplu

 #!/bin/bash #While loop example in C style i=1 while((i <= 10)) do echo $i let i++ done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/46/bash-while-loop-6.webp" alt="Bash While Loop"> <h2>Conclusion</h2> <p>In this topic, we discussed how to use while loop statement in Bash to perform specific tasks.</p> <hr></=>