Bash saat loop dengan contoh
- 2474
- 615
- John Ratke
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 selesai1234 | Sedangkan 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)) selesai123456 | Count = 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 selesai12345 | Jawaban = "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)) selesai12345678910 | Count = 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)) selesai1234567891011 | Count = 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 < $filename123456789 | #!/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)) selesai1234567891011 | x = 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.