Bash semasa gelung dengan contoh

Bash semasa gelung dengan contoh

A manakala Gelung adalah struktur kawalan asas dalam skrip bash yang membolehkan anda melaksanakan blok kod berulang kali selagi keadaan tertentu adalah benar. Gelung sementara adalah alat penting dalam kotak alat Bash Programmer, dan digunakan untuk mengautomasikan tugas, melaksanakan operasi pada koleksi data, dan melaksanakan algoritma kompleks.

Dalam skrip bash, sementara gelung boleh digunakan untuk melakukan pelbagai tugas, seperti membaca dan memproses fail, menghasilkan laporan, menanyakan pangkalan data, dan berinteraksi dengan pengguna. .

Dalam tutorial ini, kami akan meneroka sintaks asas sementara gelung di bash, dan memeriksa bagaimana mereka boleh digunakan untuk mengautomasikan tugas dan melaksanakan algoritma kompleks. Kami juga akan meliputi beberapa kes penggunaan biasa dan amalan terbaik untuk bekerja dengan semasa gelung, dan memberikan contoh cara menggunakan sementara gelung untuk menyelesaikan masalah dunia nyata.

Sintaks

Gelung sementara adalah sejenis gelung dalam bash yang membolehkan anda berulang kali melaksanakan satu set perintah selagi keadaan tertentu adalah benar. Sintaks untuk gelung sementara adalah seperti berikut:

1234sementara keadaando # memerintahkan ke executeedOne

Dalam tutorial ini, kami akan meliputi asas -asas penggunaan semasa gelung di bash.

Contoh asas

Mari kita mulakan dengan contoh yang mudah. Katakan anda mahu mengira dari 1 hingga 5 dan cetak setiap nombor. Anda boleh menggunakan gelung sementara untuk melakukan ini, seperti itu:

kiraan = 1 sementara [$ count -le 5] lakukan echo $ count count = $ ((count+1)) selesai
123456kiraan = 1 sementara [$ count -le 5] do echo $ count count = $ ((count+1)) selesai

Dalam contoh ini, kami telah memulakan pembolehubah yang dipanggil kiraan hingga 1, dan kemudian menggunakan gelung sementara untuk berulang kali mencetak nilai kiraan selagi ia kurang dari atau sama dengan 5. Di dalam gelung, kami mencetak nilai kiraan menggunakan perintah echo, dan kemudian meningkatkan nilai kiraan dengan 1 menggunakan sintaks ((kiraan+1)).

Menggunakan keadaan

Keadaan dalam beberapa gelung boleh menjadi ungkapan bash yang sah. Sebagai contoh, anda mungkin menggunakan syarat yang menguji nilai pembolehubah, seperti itu:

Jawab = "Tidak" sementara ["$ Jawapan" != "ya"] baca -p "Adakah anda mahu meneruskan? (ya/tidak) "Jawapan dilakukan
12345Jawab = "Tidak" sementara ["$ Jawapan" != "ya"] baca -p "Adakah anda mahu meneruskan? (ya/tidak) "jawab

Dalam contoh ini, kami telah memulakan pembolehubah yang dipanggil Jawapan untuk "Tidak", dan kemudian menggunakan gelung sementara untuk berulang kali meminta pengguna untuk memasukkan "ya" atau "tidak" sehingga pengguna memasuki "ya". Di dalam gelung, kami menggunakan arahan baca untuk membaca garis input dari pengguna, dan kemudian menguji sama ada nilai jawapannya adalah "ya" menggunakan ["$ jawapan" != "Ya"] sintaks.

Menggunakan pernyataan rehat

Anda boleh menggunakan pernyataan rehat untuk keluar dari gelung sementara awal. Sebagai contoh:

kiraan = 1 sementara [$ count -le 10] lakukan jika [$ count -eq 5] kemudian pecah fi echo $ count count = $ ((count+1)) selesai
12345678910Count = 1 ketika $ count -le 10] lakukan jika [$ count -eq 5] kemudian pecah fi echo $ count count = $ ((count+1)) selesai

Dalam contoh ini, kami telah menggunakan gelung sementara untuk dikira dari 1 hingga 10 dan mencetak setiap nombor. Walau bagaimanapun, kami juga termasuk pernyataan IF di dalam gelung yang menguji sama ada nilai kiraan adalah sama dengan 5. Jika sudah, kami menggunakan pernyataan rehat untuk keluar dari gelung. Akibatnya, gelung ini hanya akan mencetak nombor 1 hingga 4.

Menggunakan pernyataan Teruskan

Anda boleh menggunakan pernyataan Teruskan untuk melangkau ke lelaran seterusnya gelung sementara. Sebagai contoh:

Count = 1 sementara [$ count -le 5] lakukan jika [$ count -eq 3] kemudian count = $ ((count+1)) terus fi echo $ count count = $ ((count+1)) selesai
1234567891011Count = 1 ketika $ count -le 5] lakukan jika [$ count -eq 3] kemudian kiraan = $ ((count+1)) terus fi echo $ count count = $ ((count+1)) selesai

Dalam contoh ini, kami telah menggunakan gelung sementara untuk dikira dari 1 hingga 5 dan mencetak setiap nombor. Walau bagaimanapun, kami juga termasuk pernyataan IF di dalam gelung yang menguji sama ada nilai kiraan adalah sama dengan 3. Sekiranya, kami menggunakan pernyataan Teruskan untuk melangkau ke lelaran seterusnya gelung. Akibatnya, gelung ini akan mencetak nombor 1, 2, 4, dan 5, tetapi melangkau nombor 3.

Membaca baris fail mengikut baris

. Anda boleh menggunakan gelung sementara untuk membaca setiap baris fail dan melakukan beberapa operasi di atasnya. Inilah contoh:

#!/bin/bash filename = "Contoh.TXT "Semasa Baca Line Do Echo" Pemprosesan: $ line " # Tambahkan kod anda untuk memproses baris di sini yang dilakukan < $filename
123456789#!/bin/bash filename = "Contoh.TXT "Semasa Baca Linedo Echo" Barisan Pemprosesan: $ Line " # Tambahkan kod anda untuk memproses Heredone baris < $filename

Dalam contoh ini, kami menentukan nama fail pembolehubah yang mengandungi nama fail yang ingin kami baca. Kami kemudian membuka gelung sementara menggunakan arahan baca. ia akan membaca satu baris dari fail dan memprosesnya dengan arahan yang diberikan.

Bersarang semasa gelung

Anda juga boleh bersarang semasa gelung di dalam satu sama lain untuk mencipta gelung yang lebih kompleks. Sebagai contoh:

x = 1 sementara [$ x -le 3] lakukan y = 1 sementara [$ y -le 3] lakukan echo "($ x, $ y)" y = $ ((y+1)) dilakukan x = $ ((( x+1)) Selesai
1234567891011x = 1 Semasa [$ x -le 3] lakukan y = 1 sementara [$ y -le 3] do echo "($ x, $ y)" y = $ ((y+1)) dilakukan x = $ ((x +1)) selesai

Dalam contoh ini, kami telah menggunakan gelung sementara untuk dikira dari 1 hingga 3 dan mencetak setiap nombor, dan kemudian bersarang satu lagi semasa gelung di dalamnya dikira dari 1 hingga 3 dan cetak setiap nombor lagi. Akibatnya, gelung ini akan mencetak output berikut:

Output (1, 1) (1, 2) (1, 3) (2, 1) (2, 2) (2, 3) (3, 1) (3, 2) (3, 3) 

Kesimpulan

Walaupun gelung adalah alat yang berkuasa di bash yang membolehkan anda mengulangi perintah selagi keadaan tertentu benar. Dengan menguasai asas -asas semasa gelung, anda boleh membuat skrip yang lebih kompleks dan mengautomasikan tugas biasa.