Pengaturcaraan BASH

Gelung Bersarang dalam Contoh Skrip Bash

Gelung Bersarang dalam Contoh Skrip Bash

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

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

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

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

bilangan = 1
sementara [$ num -le 5]; buat
gema "hello world"
angka = $ (($ num + 1))
selesai

Bagaimana rasanya mempunyai gelung sambil bersarang? Inilah contoh ringkas.

num_a = 1
num_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 [ ]; buat
# 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 = 1
sehingga [$ 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++)); do
gema $ 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.

  • Gelung tanpa had
  • Masukan pengguna skrip Bash
  • Fungsi Bash mengembalikan array

Selamat pengkomputeran!

Cara menukar saiz, warna & skema penunjuk dan kursor tetikus pada Windows 10
Penunjuk dan kursor tetikus di Windows 10 adalah aspek yang sangat penting dalam sistem operasi. Ini boleh dikatakan untuk sistem operasi lain juga, j...
Enjin Permainan Sumber Percuma dan Terbuka untuk Membangunkan Permainan Linux
Artikel ini akan merangkumi senarai enjin permainan sumber percuma dan terbuka yang dapat digunakan untuk mengembangkan permainan 2D dan 3D di Linux. ...
Shadow of the Tomb Raider untuk Tutorial Linux
Shadow of the Tomb Raider adalah penambahan kedua belas untuk siri Tomb Raider - francais permainan aksi-pengembaraan yang dibuat oleh Eidos Montreal....