Dalam pemrograman atau skrip, loop adalah salah satu konsep paling dasar dan kuat. Sebuah loop melakukan tugas-tugas tertentu sampai kondisi yang ditentukan terpenuhi. Setiap bahasa pemrograman atau scripting memiliki cara yang berbeda dalam mengimplementasikan konsep.
Dalam panduan ini, periksa loop bersarang di skrip bash.
Lingkaran bersarang
Sebuah loop, menurut definisi, melakukan tugas-tugas tertentu sampai kondisi terpenuhi. Bagaimana jika tugasnya termasuk menjalankan loop? Ini adalah konsep loop bersarang. Sebuah lingkaran dalam lingkaran.
Ini adalah struktur dasar dari sebuah loop.
sementara (kondisi)#sesuatu
Di sini, while loop akan terus melakukan tugas yang dideklarasikan di dalam blok selama kondisinya terpenuhi condition. Dalam kasus loop while bersarang, strukturnya akan terlihat seperti ini.
# putaran utamasementara (kondisi)
# loop bersarang
sementara(kondisi)
#sesuatu
Secara teori, loop bersarang bisa mencapai kedalaman tak terbatas. Dalam banyak situasi, loop bersarang bisa menjadi solusi sempurna.
Loop dalam skrip bash
Bash adalah bahasa skrip yang kuat. Ada struktur loop yang berbeda di bash. Yang paling populer adalah untuk, sementara, dan sampai loop. Jika Anda terbiasa dengan pemrograman C/C++ sebelumnya, maka sintaksnya pasti akan terlihat sangat mirip.
Untuk loop
For loop adalah salah satu output bentuk yang paling umum dan serbaguna, dll. Struktur loop dalam skrip bash. Strukturnya juga sangat mirip dengan loop di C/C++.
Struktur for loop di bash adalah sebagai berikut:.
untuk ((menginisialisasi ; kondisi ; kenaikan)); melakukan#sesuatu
selesai
Strukturnya sangat jelas. Bagian inisialisasi tidak wajib. Namun, kondisi dan kenaikan adalah prioritas yang lebih tinggi.
Mari kita nyatakan dalam tindakan. Inilah skrip bash yang sangat sederhana yang mengimplementasikan for loop.
untuk ((i = 0 ; i < 5 ; i++)); dogema "halo dunia"
selesai
Dimungkinkan juga untuk menggunakan daftar/rentang sebagai kondisi loop. Ini sangat berguna jika bekerja dengan daftar file, rentang angka, array, output perintah, dll. Strukturnya terlihat seperti ini.
untuk barang di- ; melakukan
- Bash loop tak terbatas
- Masukan pengguna skrip bash
- Fungsi bash mengembalikan array
#sesuatu
selesai
Misalnya, skrip berikut akan mencetak "hello world" lima kali.
untuk saya dalam 1… 5; melakukangema "halo dunia"
selesai
Bagaimana jika kita perlu bekerja dengan isi direktori? Dalam contoh berikut, skrip akan mencetak semua file di direktori /usr/bin.
untuk saya di /usr/bin/*; melakukangema $i
selesai
Sekarang, apa yang kita lakukan untuk memiliki loop for bersarang? Itu hanya satu untuk loop di dalam yang lain. Berikut adalah perulangan for bersarang menggunakan contoh sebelumnya.
untuk ((i = 0 ; i < 3 ; i++)); dountuk((j = 0 ; j < 2 ; j++)); do
gema "halo dunia"
selesai
selesai
Outputnya akan menjadi "hello world" 6 kali. Loop luar akan berjalan tiga kali, menjalankan loop dalam dua kali.
Sementara loop
Loop while adalah loop populer dan intuitif lain yang tersedia di skrip bash. Sintaksnya terlihat seperti ini.
sementara#sesuatu
selesai
Dalam contoh berikut, skrip akan mencetak "hello world" lima kali.
nomor=1while [ $num -le 5 ]; melakukan
gema "halo dunia"
jumlah=$(($jumlah+1))
selesai
Seperti apa rasanya memiliki loop while bersarang?? Berikut adalah contoh sederhana.
nomor_a=1nomor_b=1
while [ $num_a -le 5 ]; melakukan
while [ $num_b -le 5 ]; melakukan
gema "halo dunia"
jumlah_b=$(($jumlah_b+1))
selesai
jumlah_a=$(($jumlah_a+1))
selesai
Sampai loop
Jika Anda memiliki latar belakang pemrograman di C/C++, maka Anda sudah familiar dengan loop do-while. Sayangnya, bash tidak memiliki hal seperti itu. Namun, sampai loop beroperasi dengan cara yang sama. Sintaksnya juga terlihat sama.
sampai [#sesuatu
selesai
Selisih antara while dan sampai loop adalah kondisi pengujian test. Selama kondisi pengujian benar, loop sementara akan terus berjalan. Perulangan sampai, bagaimanapun, akan tetap berjalan hanya jika kondisinya salah.
Berikut adalah contoh singkat dari while loop. Ini akan mencetak tabel perkalian 2.
nomor_a=1sampai [ $num_a -gt 10 ]; melakukan
echo $(($num_a * 2))
jumlah_a=$(($jumlah_a+1))
selesai
Istirahat lingkaran
Dalam situasi tertentu, jika kondisi tertentu terpenuhi, menjalankan sisa loop menjadi berlebihan. Loop break adalah fitur menarik yang memungkinkan pemutusan loop pada kondisi tertentu. Lebih penting untuk loop bersarang karena semakin tinggi loop, semakin banyak konsumsi sumber daya dan inefisiensi.
Di sini, loop for berikut akan berhenti dieksekusi segera setelah mencapai kondisi:.
untuk ((i=1;i<=100;i++)); dogema $i
jika [ $i -eq 10 ]; kemudian
istirahat
fi
selesai
Lihat cara memutus loop while untuk penjelasan mendalam dan demonstrasi pemutusan loop.
Pikiran terakhir
Loop bersarang adalah konsep sederhana dan kuat untuk dipahami dan diterapkan. Semoga panduan ini mampu menjelaskan dan mendemonstrasikan konsepnya.
Tertarik dengan lebih banyak panduan skrip bash? Simak panduan berikut ini.
Selamat berkomputasi!