Loop adalah salah satu konsep dasar bahasa pemrograman. Loop berguna saat Anda ingin menjalankan serangkaian perintah berulang-ulang hingga kondisi tertentu tercapai.
Dalam bahasa skrip seperti Bash, loop berguna untuk mengotomatiskan tugas yang berulang.
Ada tiga konstruksi loop dasar dalam skrip Bash, for
loop, while
loop, dan until
lingkaran.
Dalam tutorial ini, kita akan membahas dasar-dasar perulangan for di Bash. Kami juga akan menunjukkan cara menggunakan break
dan continue
pernyataan untuk mengubah aliran loop.
Bash Standar for
Putaran #
for
loop mengulangi daftar item dan melakukan serangkaian perintah yang diberikan.
Bash for
loop mengambil bentuk berikut:
for item in [LIST]
do
[COMMANDS]
done
Daftar tersebut dapat berupa rangkaian string yang dipisahkan oleh spasi, rentang angka, keluaran dari suatu perintah, larik, dan seterusnya.
Mengulangi string #
Pada contoh di bawah, loop akan mengulangi setiap item dalam daftar string, dan variabel element
akan disetel ke item saat ini:
for element in Hydrogen Helium Lithium Beryllium
do
echo "Element: $element"
done
Loop akan menghasilkan output berikut:
Element: Hydrogen
Element: Helium
Element: Lithium
Element: Beryllium
Mengulangi rentang angka #
Anda dapat menggunakan ekspresi urutan untuk menentukan rentang angka atau karakter dengan menentukan titik awal dan titik akhir rentang. Ekspresi urutan mengambil bentuk berikut:
{START..END}
Berikut adalah contoh loop yang mengulang semua angka dari 0 hingga 3:
for i in {0..3}
do
echo "Number: $i"
done
Number: 0
Number: 1
Number: 2
Number: 3
Mulai dari Bash 4, dimungkinkan juga untuk menentukan kenaikan saat menggunakan rentang. Ekspresi mengambil bentuk berikut:
{START..END..INCREMENT}
Berikut ini contoh yang menunjukkan cara menambah sebesar 5:
for i in {0..20..5}
do
echo "Number: $i"
done
Number: 0
Number: 5
Number: 10
Number: 15
Number: 20
Mengulangi elemen array #
Anda juga dapat menggunakan for
loop untuk mengulangi array elemen.
Pada contoh di bawah ini, kita mendefinisikan sebuah array bernama BOOKS
dan mengulangi setiap elemen larik.
BOOKS=('In Search of Lost Time' 'Don Quixote' 'Ulysses' 'The Great Gatsby')
for book in "${BOOKS[@]}"; do
echo "Book: $book"
done
Book: In Search of Lost Time
Book: Don Quixote
Book: Ulysses
Book: The Great Gatsby
Bash gaya-C untuk loop #
Sintaks gaya-C for
loop mengambil bentuk berikut:
for ((INITIALIZATION; TEST; STEP))
do
[COMMANDS]
done
INITIALIZATION
bagian dijalankan hanya sekali ketika loop dimulai. Kemudian, TEST
bagian dievaluasi. Jika salah, loop dihentikan. Jika TEST
benar, perintah di dalam tubuh for
loop dieksekusi, dan STEP
bagian diperbarui.
Dalam kode contoh berikut, bintang loop dengan menginisialisasi i = 0
, dan sebelum setiap iterasi memeriksa apakah i ≤ 10
. Jika benar itu mencetak nilai saat ini dari i
dan [menambah variabel] i
dengan 1 (i++
) jika tidak, loop akan berhenti.
for ((i = 0 ; i <= 1000 ; i++)); do
echo "Counter: $i"
done
Loop akan berulang 1001 kali dan menghasilkan output berikut:
Counter: 0
Counter: 1
Counter: 2
...
Counter: 998
Counter: 999
Counter: 1000
break
dan continue
Pernyataan #
break
dan continue
pernyataan dapat digunakan untuk mengontrol eksekusi loop for.
break
Pernyataan #
break
pernyataan mengakhiri loop saat ini dan meneruskan kontrol program ke pernyataan yang mengikuti pernyataan yang dihentikan. Biasanya digunakan untuk mengakhiri loop ketika kondisi tertentu terpenuhi.
Dalam contoh berikut, kami menggunakan if
pernyataanuntuk menghentikan eksekusi loop setelah item yang diulang saat ini sama dengan 'Lithium'.
for element in Hydrogen Helium Lithium Beryllium; do
if [[ "$element" == 'Lithium' ]]; then
break
fi
echo "Element: $element"
done
echo 'All Done!'
Element: Hydrogen
Element: Helium
All Done!
continue
Pernyataan #
continue
pernyataan keluar dari iterasi loop saat ini dan meneruskan kontrol program ke iterasi loop berikutnya.
Dalam contoh berikut, kami melakukan iterasi melalui rentang angka. Ketika item yang diulang saat ini sama dengan '2', continue
pernyataan akan menyebabkan eksekusi kembali ke awal loop dan melanjutkan dengan iterasi berikutnya:
for i in {1..5}; do
if [[ "$i" == '2' ]]; then
continue
fi
echo "Number: $i"
done
Number: 1
Number: 3
Number: 4
Number: 5
Bash for
Contoh Perulangan #
Mengganti nama file dengan spasi di nama file #
Contoh berikut menunjukkan cara mengganti nama semua file di direktori saat ini dengan spasi di namanya dengan mengganti spasi menjadi garis bawah:
for file in *\ *; do
mv "$file" "${file// /_}"
done
Mari kita uraikan kode baris demi baris:
- Baris pertama membuat
for
loop dan iterasi melalui daftar semua file dengan spasi di namanya. Ekspresi*\ *
membuat daftar. - Baris kedua berlaku untuk setiap item dari daftar dan memindahkan file ke yang baru menggantikan spasi dengan garis bawah (
_
). Bagian${file// /_}
menggunakan ekspansi parameter shelluntuk mengganti pola dalam parameter dengan string. done
menunjukkan akhir segmen loop.
Mengubah ekstensi file #
Contoh berikut menunjukkan cara menggunakan Bash for
loop untuk mengganti nama semua file yang dikirim dengan .jpeg di direktori saat ini dengan mengganti ekstensi file dari .jpeg ke .jpg.
for file in *.jpeg; do
mv -- "$file" "${file%.jpeg}.jpg"
done
Mari kita menganalisis kode baris demi baris:
- Baris pertama membuat
for
loop dan mengulangi daftar semua file yang diakhiri dengan '.jpeg'. - Baris kedua berlaku untuk setiap item daftar dan memindahkan file ke yang baru menggantikan '.jpeg' dengan '.jpg'.
${file%.jpeg}
untuk menghapus bagian '.jpeg' dari nama file menggunakan ekspansi parameter shell done
menunjukkan akhir segmen loop.
Kesimpulan #
Bash for
loop digunakan untuk mengeksekusi serangkaian perintah yang diberikan berulang kali untuk jumlah waktu yang tetap.
Jika Anda memiliki pertanyaan atau umpan balik, silakan tinggalkan komentar.