Ce face while
Bucla while este ideală pentru iterații unde numărul de pași nu este cunoscut dinainte, ci depinde de o stare externă (de exemplu așteptarea ca un serviciu să pornească).
Cea mai folosită construcție este while IFS= read -r linie; do ... done < fisier.txt, care este metoda standard și sigură de a citi un fișier linie cu linie în Bash.
Opțiuni și argumente
| Opțiune / Parametru | Descriere |
|---|---|
while [[ conditie ]] |
Evaluează condiția la începutul fiecărei iterații. |
while IFS= read -r linie |
Citește intrarea linie cu linie, păstrând spațiile de la margini și caracterele backslash. |
break |
Oprește imediat execuția buclei și trece la instrucțiunea de după done. |
continue |
Sare peste restul instrucțiunilor curente și începe următoarea iterație. |
Exemple
Exemplul 1: Citirea unui fișier linie cu linie
Procesăm fiecare rând dintr-o listă de utilizatori.
cat << 'EOF' > utilizatori.txt
ana
bogdan
cristi
EOF
while IFS= read -r user; do
echo "Utilizator activ: $user"
done < utilizatori.txt
Rezultat
Utilizator activ: ana
Utilizator activ: bogdan
Utilizator activ: cristi
Exemplul 2: Buclă numerică simplă cu contor
Incrementăm o variabilă până atinge valoarea 3.
CONT=1
while [[ $CONT -le 3 ]]; do
echo "Incercarea $CONT"
((CONT++))
done
Rezultat
Incercarea 1
Incercarea 2
Incercarea 3
Greșeli frecvente
- Crearea unei bucle infinite prin uitarea incrementării variabilei de control în interiorul corpului buclei.