Unix / Linux - Shell Loop Control

Hai, para pemrogram yang sedang berkembang! Hari ini, kita akan mendalamkan dunia yang menarik dari kontrol loop dalam skrip shell Unix dan Linux. Sebagai guru komputer yang ramah di lingkungan sekitar Anda, saya di sini untuk menghidahkan Anda dalam perjalanan ini, langkah demi langkah. Jangan khawatir jika Anda baru dalam programming - kita akan mulai dari dasar dan naik tingkat perlahan-lahan. Jadi, ambil secangkir kopi (atau teh, jika itu yang Anda suka), dan mari kita mulai loop!

Unix / Linux - Loop Control

Mengenal Loop

Sebelum kita melompat ke kontrol loop, mari kita ingat kembali apa itu loop. Bayangkan Anda diberi tugas menulis "Saya cinta programming" di papan tulis 100 kali. Daripada menulis itu secara manual 100 kali, Anda bisa menggunakan loop untuk mengotomatisasi tugas repetitif ini. Itu tepat apa yang loop lakukan dalam programming - mereka memungkinkan kita untuk menjalankan satu set perintah berkali-kali tanpa perlu menulisnya lagi dan lagi.

Loop Tak Terbatas

Sekarang, mari bicarakan sesuatu yang menarik dan mungkin berbahaya: loop tak terbatas. Itu seperti kereta gila yang tak pernah berhenti - itu terus berjalan dan berjalan.

Apa Itu Loop Tak Terbatas?

Loop tak terbatas adalah loop yang terus berjalan karena kondisi penghentinya tak pernah terpenuhi. Meskipun ini mungkin terdengar seperti resep untuk bencana, ada sebenarnya beberapa kasus di mana loop tak terbatas berguna (kita akan menyentuh itu nanti).

Contoh Loop Tak Terbatas

Berikut adalah contoh sederhana loop tak terbatas dalam skrip shell:

#!/bin/bash
while true
do
echo "Ini adalah loop tak terbatas!"
sleep 1
done

Dalam skrip ini:

  • while true membuat kondisi yang selalu benar, sehingga loop tak pernah berhenti.
  • echo mencetak pesan kita.
  • sleep 1 menghentikan skrip selama 1 detik sebelum iterasi berikutnya.

Jika Anda menjalankan skrip ini, Anda akan melihat "Ini adalah loop tak terbatas!" dicetak setiap detik sampai Anda manually menghentikan skrip ( biasanya dengan menekan Ctrl+C).

Kapan Kita Mungkin Menggunakan Loop Tak Terbatas?

Itu sungguh, loop tak terbatas tidak selalu buruk! Mereka bisa berguna dalam kasus seperti:

  1. Membuat program yang perlu berjalan secara kontinyu (seperti server).
  2. Implementasi sistem menu di mana pengguna dapat memilih opsi secara berulang.
  3. Memantau sistem untuk peristiwa atau kondisi tertentu.

Hanya ingat, dengan kekuatan yang besar datang tanggung jawab yang besar. Pastikan Anda memiliki cara untuk keluar dari loop tak terbatas Anda saat diperlukan!

Statement break

Sekarang kita telah melihat bagaimana loop bisa berjalan selamanya, mari belajar bagaimana menghentikannya saat kita ingin. Masuk break - exit darurat Anda dari loop apa pun.

Apa Yang break Lakukan?

Statement break melakukan seperti namanya - itu "menghentikan" loop saat ini, tanpa peduli apakah kondisi loop masih benar.

Contoh Penggunaan break

Mari kita ubah loop tak terbatas sebelumnya menjadi berhenti setelah 5 iterasi:

#!/bin/bash
count=0
while true
do
echo "Iterasi loop: $count"
count=$((count + 1))
if [ $count -eq 5 ]
then
echo "Menghentikan loop!"
break
fi
sleep 1
done
echo "Loop telah berakhir."

Dalam skrip ini:

  • Kita inisialisasi variabel count untuk melacak iterasi.
  • Setiap iterasi, kita mengincrement count dan memeriksa apakah itu sama dengan 5.
  • Jika count adalah 5, kita mencetak pesan dan menggunakan break untuk keluar loop.

Ketika Anda menjalankan skrip ini, Anda akan melihatnya menghitung hingga 5 dan kemudian berhenti.

Statement continue

Sementara break memungkinkan kita keluar dari loop sepenuhnya, kadang-kadang kita hanya ingin melewati sisanya dari iterasi saat ini dan melompat ke iterasi berikutnya. Itu saat continue berguna.

Apa Yang continue Lakukan?

Statement continue melewati sisanya dari iterasi loop saat ini dan melompat ke iterasi berikutnya.

Contoh Penggunaan continue

Mari kita buat skrip yang mencetak angka dari 1 hingga 10, tetapi melewati angka genap:

#!/bin/bash
for i in {1..10}
do
if [ $((i % 2)) -eq 0 ]
then
continue
fi
echo $i
done

Dalam skrip ini:

  • Kita menggunakan loop for untuk mengulang dari 1 hingga 10.
  • if [ $((i % 2)) -eq 0 ] memeriksa apakah angka itu genap (dibagi 2 dengan remainder nol).
  • Jika angka itu genap, continue melompat ke iterasi berikutnya.
  • Jika tidak, kita mencetak angka.

Ketika Anda menjalankan skrip ini, Anda hanya akan melihat angka ganjil dicetak: 1, 3, 5, 7, 9.

Menggabungkan Semua

Sekarang kita telah belajar tentang loop tak terbatas, break, dan continue, mari kita buat contoh yang lebih kompleks yang menggunakan semua konsep ini:

#!/bin/bash

echo "Selamat datang ke Game Tebak Angka!"
secret_number=$((RANDOM % 10 + 1))
attempts=0

while true
do
read -p "Tebak angka antara 1 dan 10 (atau 'q' untuk keluar): " guess

if [ "$guess" = "q" ]
then
echo "Terima kasih telah bermain! Angka rahasia adalah $secret_number."
break
fi

if ! [[ "$guess" =~ ^[0-9]+$ ]]
then
echo "Silakan masukkan angka valid atau 'q' untuk keluar."
continue
fi

attempts=$((attempts + 1))

if [ "$guess" -eq "$secret_number" ]
then
echo "Selamat! Anda menebak angka dalam $attempts percobaan!"
break
elif [ "$guess" -lt "$secret_number" ]
then
echo "Terlalu rendah! Cobalah lagi."
else
echo "Terlalu tinggi! Cobalah lagi."
fi
done

Skrip ini membuat permainan tebak angka sederhana yang menunjukkan:

  • Loop tak terbatas untuk menjalankan permainan.
  • Menggunakan break untuk keluar saat pemain menebak benar atau memilih keluar.
  • Menggunakan continue untuk melewati input yang invalid.

Ringkasan Statement Kontrol Loop

Berikut adalah tabel rujukan cepat dari statement kontrol loop yang kita pelajari:

Statement Deskripsi Kasus Penggunaan
while true Membuat loop tak terbatas Ketika Anda memerlukan loop untuk berjalan secara kontinyu sampai kondisi tertentu terpenuhi
break Keluar dari loop saat ini Ketika Anda ingin menghentikan loop berdasarkan kondisi tertentu
continue Melompat ke iterasi berikutnya Ketika Anda ingin melewati sisanya dari iterasi saat ini berdasarkan kondisi

Ingat, loop adalah alat yang kuat dalam programming, tetapi dengan kekuatan yang besar datang tanggung jawab yang besar. Pastikan Anda memiliki cara untuk keluar dari loop Anda saat diperlukan, dan gunakan break dan continue bijaksana untuk membuat skrip yang efisien dan efektif.

Selamat coding, para ahli skrip shell masa depan! Semoga loop Anda tak terbatas hanya saat Anda memerlukannya, dan semoga statement break Anda selalu ada saat Anda butuhnya. Sampaijumpa lagi, terus loop dan belajar!

Credits: Image by storyset