Bash #24 While Loop

While loop dalam Bash memungkinkan eksekusi berulang dari suatu blok kode selama suatu kondisi tetap benar. Artikel ini membahas berbagai bentuk while loop, cara menggunakannya untuk iterasi kondisi dinamis, serta penerapannya dalam otomatisasi skrip.

Share:

Table of Contents

🖥️ Pengantar

Dalam Bash scripting, while loop digunakan untuk mengeksekusi suatu perintah berulang kali selama suatu kondisi tetap terpenuhi. While loop sering digunakan dalam iterasi dinamis, pemrosesan file, dan otomatisasi tugas.

Artikel ini akan membahas:

  1. Mengenal While Loop dalam Bash – Konsep dasar perulangan berbasis kondisi.

  2. Sintaks Dasar While Loop – Cara mendeklarasikan while loop dalam skrip.

  3. While Loop dengan Kondisi Numerik dan String – Implementasi dalam berbagai skenario.

  4. While Loop dalam Automasi – Penggunaan dalam skrip otomatisasi.

  5. Menggunakan While Loop untuk Membaca File – Teknik lanjutan untuk scripting lebih efisien.

Mari kita bahas satu per satu! 🚀

 


 

📌 1. Mengenal While Loop dalam Bash

While loop memungkinkan skrip untuk menjalankan blok kode secara berulang selama ekspresi kondisi bernilai true.

🔹 Struktur Dasar While Loop:

while [ kondisi ]; do
    # Blok perintah
    echo “Looping…”
done

 

📌 Catatan:

  • Jika kondisi tetap benar, loop akan terus berjalan tanpa batas.

  • Gunakan kondisi yang dapat berubah untuk menghindari loop tak terbatas.

 


 

📌 2. Sintaks Dasar While Loop dalam Bash

Struktur dasar perulangan while di Bash dapat digunakan dengan berbagai cara.

🔹 Contoh While Loop Sederhana:

counter=1
while [ $counter -le 5 ]; do
    echo “Iterasi ke-$counter”
    ((counter++))
done

📌 Catatan:

  • Loop akan berjalan selama counter kurang dari atau sama dengan 5.

  • ((counter++)) meningkatkan nilai counter setiap iterasi.

 


 

📌 3. While Loop dengan Kondisi Numerik dan String

While loop dapat digunakan dengan berbagai kondisi logika, termasuk numerik dan string.

🔹 Menggunakan While Loop dengan Numerik:

num=10
while [ $num -gt 0 ]; do
    echo “Countdown: $num”
    ((num–))
done

🔹 Menggunakan While Loop dengan String:

input=“”
while [ -z “$input” ]; do
    echo “Masukkan teks:”
    read input
    echo “Anda mengetik: $input”
done

📌 Catatan:

  • -z mengecek apakah string kosong.

  • read digunakan untuk meminta input pengguna.

 


 

📌 4. While Loop dalam Automasi

While loop sering digunakan dalam skrip otomatisasi untuk memproses tugas berulang secara dinamis.

🔹 Mengecek Status Jaringan:

while ! ping -c 1 google.com > /dev/null 2>&1; do
    echo “Menunggu koneksi internet…”
    sleep 5
    # Menunggu selama 5 detik sebelum mencoba lagi

done
echo “Koneksi tersedia!”

 

🔹 Menjalankan Perintah Secara Berulang:

while true; do
    echo “Memantau log sistem…”
    tail -n 10 /var/log/syslog
    sleep 10
    # Perulangan tanpa henti, berhenti dengan CTRL+C

done

📌 Catatan:

  • ! membalikkan kondisi (kondisi akan terus berjalan jika ping gagal).

  • sleep digunakan untuk menunggu beberapa detik sebelum mengulangi iterasi.

 


 

📌 5. Menggunakan While Loop untuk Membaca File

While loop juga dapat digunakan untuk membaca file baris demi baris.

🔹 Membaca File Line-by-Line:

while IFS= read -r line; do
    echo “Baris: $line”
done < file.txt

🔹 Mengeksekusi Perintah Berdasarkan Isi File:

while read user; do
    echo “Membuat akun untuk: $user”
    useradd “$user”
done < daftar_user.txt

📌 Catatan:

  • IFS= memastikan bahwa setiap baris dibaca secara utuh.

  • read -r mencegah karakter escape dari diinterpretasikan.

 


 

📌 Kesimpulan

While loop dalam Bash memungkinkan kita menjalankan perintah secara berulang berdasarkan kondisi tertentu. Dalam artikel ini, kita telah membahas:

✅ Cara menggunakan while loop dalam Bash. ✅ Iterasi menggunakan kondisi numerik dan string. ✅ Penggunaan while loop dalam otomatisasi tugas sehari-hari. ✅ Teknik lanjutan seperti membaca file dan menjalankan perintah terus-menerus.

Artikel Selanjutnya: 🔄 Until Loop – Perulangan yang berjalan sampai kondisi tertentu terpenuhi.

 


 

📚 Daftar Pustaka

 

Leave a Reply

Your email address will not be published. Required fields are marked *