Buclele în bash îți permit să repeți comenzi peste o listă de valori sau cât timp o condiție este adevărată — utile pentru operațiuni în masă prin SSH.
Bucla for
Repetă comenzi pentru fiecare element dintr-o listă:
# parcurge o listă de valori
for nume in unu doi trei; do
echo "Valoare: $nume"
done
# parcurge fișierele dintr-un director
for f in *.txt; do
echo "Procesez $f"
done
# interval numeric
for i in {1..5}; do
echo "Pasul $i"
done
Bucla while
Rulează cât timp condiția este adevărată:
# citește un fișier linie cu linie
while read linie; do
echo "$linie"
done < lista.txt
Bucla until
Rulează până când condiția devine adevărată:
contor=1
until [ $contor -gt 3 ]; do
echo "Contor: $contor"
contor=$((contor+1))
done
Exemple practice
# redimensionează toate imaginile .jpg (necesită ImageMagick)
for img in *.jpg; do
convert "$img" -resize 1000x "redim_$img"
done
# fă backup fiecărei baze de date dintr-o listă
for bd in baza1 baza2 baza3; do
mysqldump -u utilizator -pPAROLA "$bd" > "$bd.sql"
done
Notă: pune întotdeauna variabilele între ghilimele ("$var") pentru a evita problemele cu spațiile din nume. Testează buclele pe un set mic de date înainte de a le rula pe tot.