Bash ‘Sampai’ Loop: Tutorial dan Contoh

Menggunakan loop ‘sampai’ dalam skrip Bash untuk mengulang perintah.

Bash (Bourne Again Shell) adalah prompt perintah shell dan bahasa scripting di sistem operasi GNU/Linux. Ini adalah shell default untuk sebagian besar distribusi Linux.

Seperti kebanyakan bahasa scripting, Bash menyediakan sintaks loop untuk mengulang tugas serupa beberapa kali. Pada artikel ini, kita akan belajar bagaimana menggunakan perulangan sampai di Bash.

pengantar

sampai loop dalam Bash digunakan untuk mengeksekusi perintah (s) (dieksekusi perintah) beberapa kali berdasarkan pada output dari perintah lain (s) (kondisi perintah). Perintah yang dijalankan akan terus berjalan sampai perintah kondisi terus gagal (yaitu, mengembalikan status bukan nol. Perintah apa pun di Linux mengembalikan 0 untuk keberhasilan dan bilangan bulat bukan nol untuk kegagalan). Ini persis kebalikan dari while loop, di mana perintah yang dieksekusi terus berjalan sampai perintah kondisi berhasil.

Jika ada beberapa perintah kondisi, pernyataan hanya mempertimbangkan status perintah terakhir dalam daftar, yaitu, loop akan berjalan sampai perintah terakhir dalam daftar terus gagal.

Sintaks Umum

Sintaks umum untuk loop sampai di Bash adalah:

sampai <condition_command_list> melakukan <execute_command_list> selesai

Daftar perintah eksekusi akan berjalan sampai perintah terakhir dalam daftar perintah kondisi gagal. Setelah perintah terakhir berhasil, loop keluar.

Pengguna dapat menentukan file yang dapat dieksekusi dalam daftar perintah. Ini bisa berupa program Linux standar atau program atau skrip pengguna khusus. Setiap perintah harus berada pada baris baru atau dipisahkan oleh titik koma pada baris yang sama.

Mari kita lihat beberapa contoh.

Looping hingga variabel memiliki nilai tertentu: Loop berikut dijalankan hingga nilai variabel x adalah 10.

x=0 sampai [[ $x -eq 10 ]] lakukan echo $x ((x++)) selesai

Dalam setiap iterasi, kita memeriksa apakah nilai x adalah 10. Nilai tersebut diperiksa menggunakan perintah test. [[ Expression ]] adalah sintaks untuk perintah test (Lihat man test ).

Kemudian di dalam blok do…done, kita cukup mencetak nilai x, dan menaikkannya. Loop keluar setelah perintah kondisi berhasil, yaitu, ketika $x sama dengan 10.

Catatan: Variabel indeks yang akan digunakan dalam perulangan ‘sampai’ harus diinisialisasi baik sebelum perulangan ‘sampai’ atau dalam perintah kondisi, sebagai lawan dari perulangan for, yang memungkinkan untuk menginisialisasi variabel secara implisit.

Dengan beberapa perintah kondisi : Perulangan berikut membuat 5 direktori bernama dir0, dir1,… dir4.

z=0 sampai echo “Hai” echo “Bye” [[ $z -eq 5 ]] do echo “Membuat dir$z…” mkdir dir$z ((z++)) selesai

Perintah pertama echo “Hai” dan echo “Bye” akan dieksekusi sekali sepenuhnya; keberhasilan atau kegagalan mereka tidak berdampak apa pun pada berapa lama loop akan berjalan.

Kemudian perintah tes untuk memeriksa nilai variabel z akan dijalankan. Sampai perintah ini terus gagal, yaitu sampai nilai z adalah 5, perintah kondisi dan perintah yang dijalankan tetap berjalan berurutan. Di sini, untuk setiap iterasi, pertama-tama ia akan menjalankan 2 perintah gema dalam kondisi dan kemudian perintah kondisi ke-3 memeriksa nilai z. Jika bukan 5, ia memasuki loop dan menjalankan perintah yang diberikan.

Istirahat dan Lanjutkan

Pernyataan Break untuk Keluar Bersyarat

Kita juga dapat menggunakan pernyataan kondisional jika di dalam loop. jika pernyataan dapat digunakan dengan istirahat pernyataan, untuk keluar bersyarat dari loop.

x=0 sampai [[ $x -eq 10 ]] lakukan jika [[ $x -eq 5 ]] break fi echo $x ((x++)) selesai

Perulangan sampai di atas akan mencetak angka dari 0 sampai 4. Kemudian ketika nilai i adalah 5 maka akan keluar dari perulangan. Ini adalah penggunaan khusus ketika sebuah loop akan keluar ketika sebuah perintah memberikan output tertentu.

Lanjutkan Pernyataan untuk Melewati Iterasi Secara Bersyarat

Bash juga memiliki pernyataan continue untuk melewatkan bagian yang tersisa dari iterasi dalam satu lingkaran jika kondisi tertentu terpenuhi.

x=0 sampai [[ $x -eq 10 ]] lakukan jika [[ $x -eq 5 ]] lanjutkan fi echo $x ((x++)) selesai

Loop di atas akan mencetak angka dari 0 hingga 10, kecuali 5, karena selama iterasi x=5 ada pernyataan continue, yang akan melewatkan sisa kode dalam loop di awal dengan iterasi x=6.

Menggunakan Loop: Script dan Command Line

Sintaks loop dapat digunakan di Bash shell secara langsung atau dari file skrip shell yang dapat dieksekusi. Mirip dengan for dan while loop, setelah sintaks loop sampai dimasukkan pada shell, shell melanjutkan prompt untuk membiarkan pengguna melanjutkan perintah yang akan di-loop.

Atau yang lain, pengguna dapat menyimpan ini dalam file skrip dan menjalankan file skrip.

#! / Bin / bash di awal menentukan interpreter yang akan digunakan ketika file tersebut dijalankan. Meskipun Bash adalah shell yang paling umum digunakan saat ini, beberapa pengguna lebih memilih shell seperti zsh, yang harus ditentukan sebagai pengganti bash di awal file ini.

Untuk memberikan izin eksekusi untuk file ini, jalankan:

chmod +x test.sh

Terakhir, untuk menjalankan file, jalankan:

./test.sh

Kesimpulan

sampai loop fitur penting lain dalam Bash scripting. Ini memiliki kepentingan khusus dalam skrip kompleks ketika serangkaian program tertentu diharapkan mengembalikan status gagal, dan beberapa perintah lain harus dieksekusi untuk mencatat kegagalan, menampilkan kesalahan secara detail, atau sekadar menjalankan beberapa program alternatif.

Related Posts