Bash saat loop dengan contoh

Bash saat loop dengan contoh

A ketika Loop adalah struktur kontrol mendasar dalam skrip bash yang memungkinkan Anda untuk menjalankan blok kode berulang kali selama kondisi tertentu benar. Loop sementara adalah alat penting dalam kotak alat pemrogram Bash, dan digunakan untuk mengotomatisasi tugas, melakukan operasi pada pengumpulan data, dan mengimplementasikan algoritma yang kompleks.

Dalam skrip bash, sementara loop dapat digunakan untuk melakukan berbagai tugas, seperti membaca dan memproses file, menghasilkan laporan, menanyakan database, dan berinteraksi dengan pengguna. Sementara loop juga sering digunakan dalam kombinasi dengan struktur kontrol bash lainnya, seperti pernyataan bersyarat (jika, elif, lain) dan loop lainnya (untuk, sampai), untuk menerapkan algoritma dan skrip yang kompleks.

Dalam tutorial ini, kami akan mengeksplorasi sintaks dasar while loop di bash, dan memeriksa bagaimana mereka dapat digunakan untuk mengotomatisasi tugas dan menerapkan algoritma kompleks. Kami juga akan membahas beberapa kasus penggunaan umum dan praktik terbaik untuk bekerja dengan sementara loop, dan memberikan contoh cara menggunakan sementara loop untuk menyelesaikan masalah dunia nyata.

Sintaksis

Loop sementara adalah jenis loop dalam bash yang memungkinkan Anda berulang kali menjalankan satu set perintah selama kondisi tertentu benar. Sintaks untuk loop sementara adalah sebagai berikut:

Sedangkan kondisi lakukan # perintah untuk mengeksekusi selesai
1234Sedangkan conditiondo # perintah untuk dieksekusi

Dalam tutorial ini, kami akan membahas dasar -dasar penggunaan saat loop di bash.

Contoh Dasar

Mari kita mulai dengan contoh sederhana. Misalkan Anda ingin menghitung dari 1 hingga 5 dan mencetak setiap nomor. Anda dapat menggunakan loop sementara untuk melakukan ini, seperti itu:

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

Dalam contoh ini, kami telah menginisialisasi variabel yang disebut hitungan ke 1, dan kemudian menggunakan loop sementara untuk berulang kali mencetak nilai jumlah selama kurang dari atau sama dengan 5. Di dalam loop, kami mencetak nilai jumlah menggunakan perintah echo, dan kemudian menambah nilai jumlah dengan 1 menggunakan sintaks ((hitungan+1)) sintaksis.

Menggunakan suatu kondisi

Kondisi dalam beberapa saat loop dapat berupa ekspresi bash yang valid. Misalnya, Anda dapat menggunakan kondisi yang menguji nilai variabel, seperti itu:

Jawaban = "Tidak" sementara ["$ Jawab" != "ya"] baca -p "Apakah Anda ingin melanjutkan? (ya/tidak) "jawaban selesai
12345Jawaban = "Tidak" sementara ["$ Jawab" != "ya"] baca -p "Apakah Anda ingin melanjutkan? (ya/tidak) "Jawaban

Dalam contoh ini, kami telah menginisialisasi variabel yang disebut jawaban untuk "tidak", dan kemudian menggunakan loop sementara untuk berulang kali meminta pengguna untuk memasukkan "ya" atau "tidak" sampai pengguna memasuki "ya". Di dalam loop, kami menggunakan perintah baca untuk membaca baris input dari pengguna, dan kemudian uji apakah nilai jawabannya adalah "ya" menggunakan ["$ Answer" != "Ya"] Sintaks.

Menggunakan Pernyataan Istirahat

Anda dapat menggunakan pernyataan break untuk keluar beberapa saat loop sebelum waktunya. Misalnya:

Count = 1 sementara [$ count -le 10] lakukan jika [$ count -eq 5] Kemudian break fi echo $ count count = $ ((count+1)) selesai
12345678910Count = 1 -saat [$ count -le 10] lakukan jika [$ count -eq 5] Kemudian break fi echo $ count count = $ ((count+1)) selesai

Dalam contoh ini, kami telah menggunakan loop sementara untuk menghitung dari 1 hingga 10 dan mencetak setiap nomor. Namun, kami juga menyertakan pernyataan IF di dalam loop yang menguji apakah nilai jumlah sama dengan 5. Jika ya, kami menggunakan pernyataan break untuk keluar dari loop. Akibatnya, loop ini hanya akan mencetak angka 1 hingga 4.

Menggunakan Pernyataan Lanjutkan

Anda dapat menggunakan pernyataan melanjutkan untuk melompat ke iterasi berikutnya dari loop sementara. Misalnya:

Count = 1 sementara [$ count -le 5] lakukan jika [$ count -eq 3] lalu hitung = $ ((hitung+1)) lanjutkan fi echo $ count count = $ ((count+1)) selesai
1234567891011Count = 1Shile [$ count -le 5] lakukan jika [$ count -eq 3] lalu hitung = $ ((hitung+1)) lanjutkan fi echo $ count count = $ ((count+1)) selesai

Dalam contoh ini, kami telah menggunakan loop sementara untuk menghitung dari 1 hingga 5 dan mencetak setiap nomor. Namun, kami juga menyertakan pernyataan IF di dalam loop yang menguji apakah nilai jumlah sama dengan 3. Jika ya, kami menggunakan pernyataan melanjutkan untuk melompat ke iterasi selanjutnya dari loop. Akibatnya, loop ini akan mencetak angka 1, 2, 4, dan 5, tetapi lewati angka 3.

Membaca file baris demi baris

Salah satu kasus penggunaan umum untuk while loop di bash adalah membaca dan memproses file. Anda dapat menggunakan loop sementara untuk membaca setiap baris file dan melakukan operasi di atasnya. Inilah contohnya:

#!/Bin/Bash FileName = "Contoh.txt "While Read Line do Echo" Line Processing: $ line " # Tambahkan kode Anda untuk memproses baris di sini selesai < $filename
123456789#!/Bin/Bash FileName = "Contoh.txt "Saat membaca Linedo Echo" Line Processing: $ line " # Tambahkan kode Anda untuk memproses baris heredone < $filename

Dalam contoh ini, kami mendefinisikan nama file variabel yang berisi nama file yang ingin kami baca. Kami kemudian membuka loop sementara menggunakan perintah baca. itu akan membaca satu baris dari file dan memprosesnya dengan instruksi yang diberikan.

Bersarang saat loop

Anda juga dapat bersarang sementara loop di dalam satu sama lain untuk membuat loop yang lebih kompleks. Misalnya:

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

Dalam contoh ini, kami telah menggunakan loop sementara untuk menghitung dari 1 hingga 3 dan mencetak setiap angka, dan kemudian bersarang yang lain sementara loop di dalamnya untuk menghitung dari 1 hingga 3 dan mencetak setiap angka lagi. Akibatnya, loop 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

Sementara loop adalah alat yang ampuh dalam bash yang memungkinkan Anda untuk mengulangi perintah selama kondisi tertentu benar. Dengan menguasai dasar -dasar loop saat, Anda dapat membuat skrip yang lebih kompleks dan mengotomatiskan tugas umum.