Dalam pengaturcaraan atau skrip, gelung adalah salah satu konsep yang paling asas dan kuat. Gelung melakukan tugas tertentu sehingga syarat yang ditentukan dipenuhi. Setiap bahasa pengaturcaraan atau skrip mempunyai cara yang berbeza untuk melaksanakan konsep.
Dalam panduan ini, lihat gelung bersarang dalam skrip bash.
Gelung bersarang
Gelung, menurut definisi, melakukan tugas tertentu sehingga syaratnya dipenuhi. Bagaimana jika tugas itu merangkumi menjalankan gelung? Ini adalah konsep gelung bersarang. Gelung dalam gelung.
Ini adalah struktur asas gelung.
semasa (keadaan)# sesuatu
Di sini, loop sementara akan terus menjalankan tugas yang dinyatakan di dalam blok selagi syarat itu dipenuhi. Sekiranya gelung bersarang sementara, strukturnya akan kelihatan seperti ini.
# gelung utamasementara (keadaan)
# gelung bersarang
sementara (keadaan)
# sesuatu
Secara teori, gelung bersarang dapat mencapai kedalaman yang tidak terbatas. Dalam banyak keadaan, gelung bersarang dapat menjadi penyelesaian yang sempurna.
Gelung dalam skrip bash
Bash adalah bahasa tulisan yang kuat. Terdapat struktur gelung yang berbeza di bash. Yang paling popular adalah untuk, sementara, dan sehingga gelung. Sekiranya anda sudah biasa dengan pengaturcaraan C / C ++ sebelumnya, maka sintaksnya pasti kelihatan serupa.
Untuk gelung
Untuk gelung adalah salah satu bentuk output yang paling biasa dan serba boleh dll. Struktur gelung dalam skrip bash. Strukturnya juga menyerupai gelung di C / C ++ banyak.
Struktur untuk loop in bash adalah seperti berikut.
untuk ((inisialisasi; keadaan; kenaikan)); buat# sesuatu
selesai
Strukturnya sangat jelas. Bahagian permulaan tidak wajib. Walau bagaimanapun, keadaan dan kenaikan adalah keutamaan yang lebih tinggi.
Mari kita buat tindakan. Berikut adalah skrip bash yang sangat sederhana yang digunakan untuk gelung.
untuk ((i = 0; i < 5 ; i++)); dogema "hello world"
selesai
Anda juga boleh menggunakan senarai / julat sebagai keadaan gelung. Ia sangat berguna jika bekerja dengan senarai fail, julat nombor, tatasusunan, output arahan, dll. Strukturnya kelihatan seperti ini.
untuk item di- ; buat
- Gelung tanpa had
- Masukan pengguna skrip Bash
- Fungsi Bash mengembalikan array
# sesuatu
selesai
Sebagai contoh, skrip berikut akan mencetak "hello world" lima kali.
untuk i dalam 1… 5; buatgema "hello world"
selesai
Bagaimana jika kita perlu bekerja dengan kandungan direktori? Dalam contoh berikut, skrip akan mencetak semua fail di direktori / usr / bin.
untuk i in / usr / bin / *; buatgema $ i
selesai
Sekarang, apa yang kita lakukan untuk mempunyai gelung bersarang? Ia hanya satu untuk gelung yang lain. Berikut adalah sarang untuk gelung menggunakan contoh sebelumnya.
untuk ((i = 0; i < 3 ; i++)); dountuk ((j = 0; j < 2 ; j++)); do
gema "hello world"
selesai
selesai
Keluarannya akan "hello world" 6 kali. Gelung luar akan berjalan tiga kali, menjalankan gelung dalam dua kali.
Semasa gelung
The loop sementara adalah gelung popular dan intuitif lain yang terdapat dalam skrip bash. Sintaksnya kelihatan seperti ini.
sementara# sesuatu
selesai
Dalam contoh berikut, skrip akan mencetak "hello world" lima kali.
bilangan = 1sementara [$ num -le 5]; buat
gema "hello world"
angka = $ (($ num + 1))
selesai
Bagaimana rasanya mempunyai gelung sambil bersarang? Inilah contoh ringkas.
num_a = 1num_b = 1
sementara [$ num_a -le 5]; buat
sementara [$ num_b -le 5]; buat
gema "hello world"
num_b = $ (($ num_b + 1))
selesai
num_a = $ (($ num_a + 1))
selesai
Sehingga gelung
Sekiranya anda mempunyai latar belakang pengaturcaraan dalam C / C ++, maka anda sudah biasa dengan gelung do-while. Malangnya, bash tidak mempunyai perkara seperti itu. Walau bagaimanapun, sehingga gelung beroperasi dengan cara yang serupa. Sintaksnya juga kelihatan sama.
sehingga [# sesuatu
selesai
Perbezaan antara saat dan hingga gelung adalah keadaan ujian. Selagi keadaan ujian itu benar, gelung sementara akan terus berjalan. Bagaimanapun, loop sehingga akan terus berjalan hanya jika keadaannya salah.
Inilah contoh ringkas loop sementara. Ia akan mencetak jadual pendaraban 2.
num_a = 1sehingga [$ num_a -gt 10]; buat
gema $ (($ num_a * 2))
num_a = $ (($ num_a + 1))
selesai
Gelung putus
Dalam situasi tertentu, jika syarat tertentu dipenuhi, menjalankan gelung selebihnya menjadi berlebihan. Gelung putus adalah ciri menarik yang membolehkan keluar dari gelung pada keadaan tertentu. Lebih penting untuk gelung bersarang kerana semakin tinggi gelung, semakin banyak penggunaan sumber dan kecekapan.
Di sini, berikut untuk gelung akan berhenti dilaksanakan sebaik sahaja mencapai keadaan.
untuk ((i = 1; i<=100;i++)); dogema $ i
jika [$ i -eq 10]; kemudian
rehat
fi
selesai
Lihat cara memecahkan sementara gelung untuk penjelasan mendalam dan demonstrasi putus gelung.
Pemikiran terakhir
Gelung bersarang adalah konsep yang mudah dan kuat untuk difahami dan dilaksanakan. Semoga panduan ini dapat menerangkan dan menunjukkan konsep.
Berminat dengan lebih banyak panduan skrip bash? Lihat panduan berikut.
Selamat pengkomputeran!