Memahami perulangan bash for (bash for loop) lengkap dengan contohnya

For loop adalah salah satu struktur dasar dalam berbagai bahasa pemrograman, termasuk bash, yang sangat berguna untuk mengotomatiskan tugas-tugas di server atau platform VPS. Kali ini, kami akan membahas cara menggunakan for loop di bash atau “bash for loop”, lengkap dengan contohnya.

Menggunakan for loop, Anda bisa menjalankan perintah tertentu secara berulang tanpa harus menulis kode yang sama berulang kali. Misalnya, kalau Anda ingin menjalankan perintah tertentu sebanyak 5 kali, Anda cukup menuliskannya satu kali menggunakan syntax for loop.

Syntax bash for loop

Pada dasarnya, syntax for loop yang paling sederhana digunakan untuk mengulangi munculnya sekumpulan variabel. Urutan bash secara umum terlihat seperti berikut:

for VARIABLE in 1 2 3 4 5 .. N
Perform the below command:
command1
command2
commandN
done

Contoh implementasi nyatanya dalam bash script akan terlihat seperti di bawah ini:

#!/bin/bash
for i in 1 2 3 4 5
do
echo "Hello $i"
done

Apabila Anda menjalankan skrip tersebut, hasilnya akan seperti ini:

Hello 1
Hello 2
Hello 3
Hello 4 
Hello 5

Berikut penjelasan elemen dalam sintaks for loop di atas:

  • #!/bin/bash – menunjukkan bahwa kode ditulis dalam bahasa bash.
  • i – placeholder untuk variabel. Sementara itu, $i adalah nilai individu variabel tersebut. Anda juga bisa menulisnya sebagai c/$c atau dengan nama lain.
  • in – memisahkan nama variabel dengan daftar item yang akan di-loop.
  • 1 2 3 4 5 – contoh item yang akan digunakan untuk menjalankan instruksi.
  • do – kata kunci yang memulai perulangan. Kata kunci ini kemudian akan menjalankan instruksi sebanyak n kali (n adalah jumlah total item). Dalam contoh ini, nilai n adalah 5.
  • echo “Hello: $i” – kode yang akan diulang sebanyak n kali. Perlu diingat, tanda petik akan mengubah apa pun yang diapitnya menjadi satu variabel.
  • done – menghentikan perulangan.

Selain itu, berikut adalah syntax perintah loop yang juga umum digunakan:

for VARIABLE in file1 file2 file3
do
command1 on $VARIABLE
command2
commandN
done

Serta yang berikut ini:

for OUTPUT in $(Linux-Or-Unix-Command-Here)
do
command1 on $OUTPUT
command2 on $OUTPUT
commandN
done

Contoh bash for loop

Sebelum kita masuk ke contoh-contoh bash for loop, pastikan Anda sudah login ke VPS. Kalau membutuhkan panduan, baca tutorial Putty SSH kami untuk mempelajari langkah-langkahnya.

Selain itu, kalau Anda mengalami kendala saat menjalankan bash, simak tutorial dasar bash script kami yang akan membantu Anda. Perlu diingat bahwa perintah-perintah bash biasanya ditulis dalam file .sh. Untuk membuatnya, ketik perintah berikut di command-line:

vim namafile.sh

Perintah ini akan membuka editor VIM dan membuat file baru. Anda bisa langsung menulis skrip bash di dalamnya.

Bash for loop untuk membuat three-expression loop

Three-expression loop memiliki struktur yang mirip dengan bahasa pemrograman C. Formatnya terdiri dari tiga bagian: inisialisasi (EXP1), kondisi (EXP2), dan ekspresi penghitungan (EXP3).

Inisialisasi menetapkan nilai awal variabel, dan kondisi menentukan apakah perulangan akan terus berjalan. Sementara itu, ekspresi penghitungan akan memperbarui nilai variabel di setiap iterasi.

Berikut syntax dasarnya:

for (( EXP1; EXP2; EXP3 ))
do
    command1
    command2
    command3
done

Agar lebih mudah dipahami, perhatikan contoh berikut:

#!/bin/bash
for (( c=1; c<=5; c++ ))
do  
  echo "The number $c"
done

Dalam contoh di atas, nilai awal loop adalah 1. Loop akan terus berjalan selama c kurang dari atau sama dengan 5. Setiap kali perulangan terjadi, c akan bertambah 1 berkat ekspresi c++.

Bash script ini kemudian akan menampilkan pesan “$c” yang merujuk pada nilai loop, dimulai dari 1 hingga mencapai kondisi yang ditentukan. Outputnya akan terlihat seperti ini:

output bash for loop untuk three-expression

Bash for loop untuk membuat infinity loop

Bash memungkinkan Anda membuat loop tak terhingga (infinity loop), di mana perintah akan terus dijalankan hingga Anda menghentikannya secara manual, misalnya dengan menekan Ctrl + C.

Salah satu cara membuat infinity loop adalah menggunakan pernyataan while:

while true 
do 
   echo "Hello, world!"
   sleep 1
done

Apabila kondisinya true (benar), perintah ini akan menampilkan “Hello, world!” dalam interval satu detik. Cuplikan ini menggunakan pernyataan kondisional while true agar kode selalu mengembalikan exit status yang berhasil.

Karena kondisinya selalu true, kode akan terus mengulang perintah echo untuk menampilkan pesan. 

Alternatif lainnya, Anda bisa menggunakan three-expression infinite loop:

for (( ; ; ))
do
   echo "Hello, world!"
   sleep 1
done

Pada cuplikan di atas, kita mengatur semua ekspresi menjadi kosong. Karena tidak ada kondisi penghentian yang harus dipenuhi, perulangan akan terus berlanjut hingga pengguna menghentikannya.

output bash loop untuk infinite loop

Bash for loop untuk membuat skip and continue loop

Bash memungkinkan Anda membuat perulangan yang melewatkan nilai tertentu dan melanjutkan perulangan setelahnya. Syntax kodenya adalah sebagai berikut:

for i in 1 2 3 4 5
do
if [condition]
then
#Lanjutkan dengan iterasi i berikutnya dan lewati pernyataan
continue
fi
statement
done

Berikut adalah contoh kode skip and continue loop:

for i in {1..5}
do
   if [[ "$i" == '4' ]]
   then
      continue   
   fi
      echo "Hello $i"
done

Dalam contoh ini, kita menentukan item yang akan dimodifikasi, yaitu angka 1-5. Tambahkan kondisi if, yang menyatakan bahwa jika nilai variabel sama dengan 4, perulangan tidak menjalankan kode dan melanjutkan ke nilai berikutnya.

Artinya, loop akan berjalan pada 1, 2, 3, dan 5, seperti yang ditunjukkan oleh output berikut ini:

output bash loop skip continue

Bash for loop untuk membuat loop bersyarat dengan break loop

Selain struktur three-expression, gunakan for-in untuk menghentikan perulangan secara otomatis ketika operasi skrip memenuhi kondisi tertentu. Berikut adalah syntax kodenya:

for i in 1 2 3 4 5
   do
   if [condition]
   then
      break
   fi
   statement
done

Anda bisa menambahkan perintah lain di akhir kode, yang akan dijalankan setelah perulangan berakhir. Perhatikan contoh berikut ini:

for state in Alabama Alaska Arizona Arkansas California
do
   if [[ "$state" == 'Arkansas' ]]; then
      break
   fi
   echo "state: $state"
done

echo 'That’s all!'

Skrip loop menampilkan semua nama negara bagian yang ditentukan dalam daftar, tapi berhenti ketika kondisi break terpenuhi, yaitu ketika nilai saat ini sama dengan Arkansas.

Kemudian, skrip berpindah ke instruksi berikutnya untuk menampilkan pesan “That’s all!”. Berikut adalah tampilan outputnya:

output bash loop dengan break condition

Bash for loop dengan elemen array

Daripada menuliskan item satu per satu di dalam for-in, Anda bisa menggunakan array agar kode Anda lebih rapi dan mudah dibaca. Cara ini mempermudah proses perulangan karena setiap item diakses satu per satu secara otomatis.

Pertama, deklarasikan array di awal, lalu tambahkan elemen-elemennya menggunakan for-in. Berikut syntax dasarnya:

#Mendeklarasikan array berisi item
array=("item1" "item2" "item3" "item4")

#Iterasi array dan jalankan perintah
for item in "${array[@]}"
do
command1
command2
command3
done

Berikut adalah contoh kode bash loop dengan elemen array:

fruit_array=("apple" "banana" "red cherry" "green grape")

for fruit in "${fruit_array[@]}"
do
   echo "Fruit: $fruit"
done

Bash loop akan melakukan perulangan pada item dalam array dan menggunakan perintah echo untuk menampilkannya dengan awalan “Fruit:” seperti pada output berikut:

output bash loop dengan array

Kalau Anda menambahkan perintah lain, semua perintah tersebut akan dijalankan pada setiap elemen sebelum berpindah ke item berikutnya. Misalnya, kita bisa menyisipkan echo tambahan untuk menambah akhiran (suffix) pada setiap item. Berikut outputnya:

output bash for loop dengan array dan dua operasi

Bash for loop dengan variabel shell

Selain array, Anda bisa menggunakan variabel shell biasa guna menyimpan item untuk perulangan bash. Berikut kodenya:

#Tentukan variabel shell
variable="a single item"
#Iterasi variabel dan jalankan perintah
for item in $variable
do
command1
command2
command3
done

Variabel shell hanya berisi satu elemen data, tapi bash loop akan secara otomatis mengulang item yang dipisahkan oleh spasi, memperlakukannya sebagai item yang terpisah. Perhatikan contoh berikut:

var_numbers="1 2 3 4 5"

for number in $var_numbers
do
   echo "Number: $number"
done

Perulangan ini akan menampilkan angka satu per satu, bukan sebagai satu string. Untuk memperlakukan item sebagai satu kesatuan, apit variabel $var_numbers dalam ekspresi for-in dengan tanda petik, seperti berikut ini:

for number in "$var_numbers"
Output perulangan for loop di bash dengan variabel tunggal

Bash for loop dengan angka

Untuk menangani angka menggunakan bash loop, Anda bisa menggunakan range agar tidak perlu menuliskannya satu per satu. Cukup gunakan tanda kurung kurawal untuk menambahkan rentang:

for i in {1..5}
do
  echo "$i"
done

Dalam contoh ini, loop akan mengulang semua angka dari satu sampai lima. Selain itu, Anda bisa mengubah pertambahan menggunakan three-expression syntax {START..END..INCREMENT}. Berikut contohnya:

for i in {1..10..2}
do
  echo "Number: $i"
done

Penting! Pada beberapa skrip, syntax pertambahan menggunakan tanda kurung ganda, bukan kurung kurawal. Namun, keduanya memiliki fungsi yang sama.

Perulangan akan beroperasi pada nilai pertama, yaitu 1, lalu naik dua kali lipat menjadi 3, dan seterusnya. Setelah mencapai nilai akhir 10, kode akan berhenti. Hasilnya seperti berikut:

hasil bash loop dengan increment

Perlu diperhatikan bahwa fitur range hanya tersedia pada Bash versi 3.0 atau yang lebih baru, sedangkan pertambahan didukung pada Bash 4.0 dan yang lebih baru.

Bash for loop dengan string

Dalam bash loop, variabel shell umum digunakan untuk menyimpan beberapa string. Anda bisa menjalankan tugas secara massal, seperti mengganti nama file atau menginstal paket. Berikut syntaxnya:

variable="string1 string2 string3"
for item in $variable
do
   command1
   command2
   command3
done

Atau, gunakan array kalau string Anda mengandung spasi. Selain memungkinkan bash loop untuk membaca item yang dipisahkan spasi, array lebih mudah untuk diulang dan ditambah. Berikut syntax kodenya:

array=("First item" "Second item" "Third item" "Fourth item")
for item in "${array[@]}"
do
   command1
   command2
   command3
done

Menggunakan bash script secara efektif di VPS Hostinger

Selain mengotomatiskan tugas-tugas pengelolaan VPS menggunakan bash for loop, Anda juga bisa memanfaatkan fitur-fitur yang disediakan oleh provider hosting Anda untuk meningkatkan efisiensi administrasi server.

Sebagai contoh, VPS Hostinger menyediakan Terminal browser yang langsung bisa diakses di control panel hosting kami, hPanel. Terminal ini memungkinkan Anda menjalankan perintah dan utilitas Linux seperti bash loop langsung dari web browser.

Selain itu, kami memiliki Kodee, asisten AI yang siap membantu memudahkan pengelolaan VPS, terutama bagi pengguna pemula.

Misalnya, Anda bisa memintanya untuk membuat skrip bash for loop untuk berbagai tugas menggunakan prompt sederhana, seperti “Buatkan skrip bash for loop yang memulai ulang daftar layanan” atau “Tuliskan skrip bash for loop untuk membackup beberapa direktori.”

Untuk mengakses tool ini, login ke hPanel Anda dan klik menu VPS. Pilih server Anda, lalu buka Kodee dari sidebar. Untuk mendapatkan hasil yang akurat, pastikan Anda menggunakan prompt AI yang jelas dan spesifik.

Penting! Karena keterbatasan AI, beberapa jawaban mungkin tidak akurat atau kurang update.

Kesimpulan

Bash for loop sangat berguna untuk mengotomatiskan berbagai tugas berulang di sistem Linux. Dari contoh-contoh dasar yang sudah dibahas, Anda bisa mengembangkannya lagi, misalnya untuk memantau file, menjalankan perintah secara massal, atau menyusun alur kerja yang kompleks.

Hal yang perlu diperhatikan adalah bagaimana Anda menyusun perintah perulangannya. Anda mungkin perlu sedikit waktu untuk terbiasa menggunakannya, tapi dengan membaca tutorial ini, Anda pun sudah tahu langkah-langkah awalnya.

Semakin sering Anda berlatih, semakin mahir Anda menggunakannya. Selamat mencoba dan semoga berhasil!

Author
Penulis

Faradilla Ayunindya

Faradilla, yang lebih akrab disapa Ninda, sudah berpengalaman selama 10 tahun sebagai linguist dan 5 tahun sebagai Content Marketing Specialist di Hostinger. Ia suka mengikuti tren teknologi, digital marketing, dan belajar bahasa. Melalui tutorial Hostinger ini, Ninda ingin berbagi informasi dan membantu pembaca mengatasi masalah yang dialami. Kenali Ninda lebih dekat di LinkedIn.