Loop adalah salah satu konsep mendasar dalam pemrograman. Di Bash, loop memungkinkan kita menjalankan serangkaian perintah berulang kali tanpa menulis kode yang sama berulang-ulang. Tiga jenis loop dasar di Bash adalah for, while, dan until. Halaman ini membahas dasar-dasar loop for dan penggunaan break serta continue untuk mengendalikan alur eksekusi.
1. Sintaks Dasar for
Loop for di Bash mengiterasi sebuah daftar (list) item dan menjalankan perintah untuk setiap item tersebut.
for item in [DAFTAR]
do
# PERINTAH
done
Daftar bisa berupa string yang dipisahkan spasi, rentang angka, output perintah, array, atau argumen dari baris perintah.
Contoh: Loop melalui string
for element in Hydrogen Helium Lithium Beryllium
do
echo "Element: $element"
done
Contoh: Loop melalui rentang angka dengan ekspansi brace
for i in {0..3}
do
echo "Number: $i"
done
Rentang dengan kenaikan (increment) — Bash 4+
for i in {0..20..5}
do
echo "Number: $i"
done
Contoh: Loop melalui elemen array
BOOKS=('In Search of Lost Time' 'Don Quixote' 'Ulysses' 'The Great Gatsby')
for book in "${BOOKS[@]}"; do
echo "Book: $book"
done
2. for Gaya C (C-style)
Bentuk gaya C memberi kontrol lebih pada inisialisasi variabel, kondisi, dan langkah setiap iterasi.
for (( INITIALISASI; KONDISI; LANGKAH ))
do
# PERINTAH
done
Contoh:
for ((i = 0; i <= 1000; i++)); do
echo "Counter: $i"
done
3. Loop Bersarang (Nesting Loops)
Loop dapat ditempatkan di dalam loop lain. Ini berguna saat setiap iterasi loop luar harus menjalankan seluruh iterasi loop dalam.
for f in file_{1..3}; do
for j in server_{1..3}; do
echo "Copying file $f to server $j"
# perintah untuk menyalin file, misal: scp "$f" "user@$j:/path/"
done
done
4. Mengendalikan Alur: break dan continue
break — Menghentikan Loop
break menghentikan eksekusi loop saat kondisi tertentu terpenuhi, lalu eksekusi dilanjutkan setelah blok done.
for element in Hydrogen Helium Lithium Beryllium; do
if [[ "$element" == "Lithium" ]]; then
break
fi
echo "Element: $element"
done
echo "All Done!"
continue — Lewati Iterasi Saat Ini
continue menghentikan iterasi saat ini dan langsung melompat ke iterasi berikutnya.
for i in {1..5}; do
if [[ "$i" == "2" ]]; then
continue
fi
echo "Number: $i"
done
5. Contoh Praktis
a) Mengganti spasi dalam nama file menjadi underscore
for file in *\ *; do
mv -- "$file" "${file// /_}"
done
*\ *→ memilih file yang mengandung spasi.${file// /_}→ mengganti semua spasi menjadi underscore.
b) Mengganti ekstensi .jpeg menjadi .jpg pada semua file
for file in *.jpeg; do
mv -- "$file" "${file%.jpeg}.jpg"
done
*.jpeg→ memilih semua file dengan ekstensi.jpeg.${file%.jpeg}→ menghapus akhiran.jpegdari nama file.
Kesimpulan
Loop for di Bash memudahkan otomatisasi tugas berulang dengan mengiterasi daftar item: string, angka, array, atau output perintah. Gunakan bentuk gaya C untuk kontrol yang lebih granuler. Manfaatkan break dan continue untuk mengatur alur iterasi, serta terapkan pada kasus nyata seperti penamaan file massal atau konversi ekstensi.







Leave a Comment