Pemrograman BASH

Loop Bersarang dalam Contoh Skrip Bash

Loop Bersarang dalam Contoh Skrip Bash

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 utama
sementara (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++)); do
gema "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
#sesuatu
selesai

Misalnya, skrip berikut akan mencetak "hello world" lima kali.

untuk saya dalam 1… 5; melakukan
gema "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/*; melakukan
gema $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++)); do
untuk((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 ; melakukan
#sesuatu
selesai

Dalam contoh berikut, skrip akan mencetak "hello world" lima kali.

nomor=1
while [ $num -le 5 ]; melakukan
gema "halo dunia"
jumlah=$(($jumlah+1))
selesai

Seperti apa rasanya memiliki loop while bersarang?? Berikut adalah contoh sederhana.

nomor_a=1
nomor_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 [ ]; melakukan
#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=1
sampai [ $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++)); do
gema $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.

  • Bash loop tak terbatas
  • Masukan pengguna skrip bash
  • Fungsi bash mengembalikan array

Selamat berkomputasi!

Cara Meningkatkan FPS di Linux?
FPS adalah singkatan dari Bingkai per detik. Tugas FPS adalah mengukur kecepatan bingkai dalam pemutaran video atau pertunjukan game. Dengan kata sede...
Game Lab Aplikasi Oculus Teratas
Jika Anda adalah pemilik headset Oculus maka Anda harus tahu tentang sideloading. Sideloading adalah proses menginstal konten non-toko di headset Anda...
10 Game Teratas untuk Dimainkan di Ubuntu
Platform Windows telah menjadi salah satu platform yang mendominasi untuk bermain game karena persentase besar dari game yang berkembang saat ini untu...