Gelung Bash 'Sehingga': Tutorial dan Contoh

Menggunakan gelung 'sehingga' dalam skrip Bash untuk menggelungkan arahan.

Bash (Bourne Again Shell) ialah gesaan arahan shell dan bahasa skrip dalam sistem pengendalian GNU/Linux. Ia adalah cangkerang lalai untuk kebanyakan pengedaran Linux.

Seperti kebanyakan bahasa skrip, Bash menyediakan sintaks gelung untuk mengulangi tugasan yang serupa beberapa kali. Dalam artikel ini, kita akan belajar cara menggunakan sehingga gelung dalam Bash.

pengenalan

The sehingga gelung dalam Bash digunakan untuk melaksanakan perintah (perintah yang dilaksanakan) beberapa kali berdasarkan output perintah lain (perintah keadaan). Arahan yang dilaksanakan akan terus berjalan sehingga perintah syarat terus gagal (iaitu, mengembalikan status bukan sifar. Sebarang arahan dalam Linux mengembalikan 0 untuk kejayaan dan integer bukan sifar untuk kegagalan). Ini betul-betul bertentangan dengan sementara gelung, di mana arahan yang dilaksanakan terus berjalan sehingga arahan keadaan berjaya.

Jika terdapat berbilang arahan keadaan, pernyataan itu hanya mempertimbangkan status perintah terakhir dalam senarai, iaitu, gelung akan dijalankan sehingga perintah terakhir dalam senarai terus gagal.

Sintaks Umum

Sintaks umum untuk sehingga gelung dalam Bash ialah:

sehingga selesai

Senarai arahan laksana akan dijalankan sehingga arahan terakhir dalam senarai arahan syarat gagal. Setelah arahan terakhir berjaya, gelung keluar.

Pengguna boleh menentukan sebarang fail boleh laku dalam senarai arahan. Ia boleh menjadi program Linux standard atau program atau skrip pengguna tersuai. Setiap arahan hendaklah sama ada pada baris baharu atau dipisahkan oleh koma bertitik pada baris yang sama.

Mari kita lihat beberapa contoh.

Menggelung sehingga pembolehubah mempunyai nilai tertentu: Gelung berikut dilaksanakan sehingga nilai pembolehubah x ialah 10.

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

Dalam setiap lelaran, kami menyemak sama ada nilai x ialah 10. Nilai sedang disemak menggunakan ujian perintah. [[ Ungkapan ]] ialah sintaks untuk arahan ujian (Lihat ujian lelaki).

Kemudian di dalam buat...selesai blok, kita hanya mencetak nilai x, dan menambahnya. Gelung keluar setelah arahan syarat berjaya, iaitu, apabila $x adalah sama dengan 10.

Nota: Pembolehubah indeks yang akan digunakan dalam gelung 'sehingga' hendaklah dimulakan sama ada sebelum gelung 'sehingga' atau dalam arahan keadaan, berbanding gelung untuk, yang membolehkan untuk memulakan pembolehubah secara tersirat.

Dengan berbilang arahan keadaan: Gelung berikut mencipta 5 direktori bernama dir0, dir1, ... dir4.

z=0 sehingga echo "Hai" echo "Bye" [[ $z -eq 5 ]] lakukan echo "Mencipta dir$z..." mkdir dir$z ((z++)) selesai

Perintah pertama echo "Hai" dan echo "Bye" akan dilaksanakan sekali sepenuhnya; kejayaan atau kegagalan mereka tidak mempunyai kesan apa-apa pada berapa lama gelung akan berjalan.

Kemudian arahan ujian untuk menyemak nilai pembolehubah z akan dilaksanakan. Sehingga arahan ini terus gagal, iaitu, sehingga nilai z ialah 5, arahan syarat dan arahan yang dilaksanakan terus berjalan dengan teratur. Di sini, untuk setiap lelaran, ia mula-mula menjalankan 2 arahan gema dalam keadaan dan kemudian perintah syarat ke-3 menyemak nilai z. Jika bukan 5, ia memasuki gelung dan melaksanakan arahan yang diberikan.

Rehat dan Teruskan

Penyata Rehat untuk Keluar Bersyarat

Kita juga boleh menggunakan pernyataan bersyarat jika di dalam gelung. The jika pernyataan boleh digunakan dengan a rehat pernyataan, untuk keluar bersyarat daripada gelung.

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

Gelung sehingga di atas akan mencetak nombor dari 0 hingga 4. Kemudian apabila nilai i ialah 5, ia akan keluar dari gelung. Ini adalah kegunaan khusus apabila gelung akan dikeluarkan apabila arahan memberikan output tertentu.

Teruskan Pernyataan untuk Melangkau Lelaran Secara Bersyarat

Bash juga mempunyai a teruskan pernyataan untuk melangkau baki bahagian lelaran dalam gelung jika syarat tertentu dipenuhi.

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

Gelung di atas akan mencetak nombor dari 0 hingga 10, kecuali 5, kerana semasa lelaran x=5 terdapat pernyataan continue, yang akan melangkau seluruh kod dalam gelung pada permulaan dengan lelaran x=6.

Menggunakan Gelung: Skrip dan Baris Perintah

Sintaks gelung boleh digunakan dalam shell Bash secara langsung atau daripada fail skrip shell boleh laku. Sama seperti untuk dan sementara gelung, sekali an sehingga sintaks gelung dimasukkan pada shell, shell meneruskan gesaan untuk membenarkan pengguna meneruskan arahan untuk digelung.

Jika tidak, pengguna boleh menyimpan ini dalam fail skrip dan melaksanakan fail skrip.

The #!/bin/bash pada permulaan menentukan penterjemah untuk digunakan apabila fail dilaksanakan. Walaupun Bash ialah shell yang paling biasa digunakan pada masa kini, sesetengah pengguna lebih suka shell seperti itu zsh, yang harus dinyatakan sebagai ganti bash pada permulaan fail ini.

Untuk memberi kebenaran laksana untuk fail ini, jalankan:

chmod +x test.sh

Akhirnya, untuk melaksanakan fail, jalankan:

./test.sh

Kesimpulan

The sehingga gelung ialah satu lagi ciri penting dalam skrip Bash. Ia mempunyai kepentingan khusus dalam skrip kompleks apabila set program tertentu dijangka mengembalikan status gagal, dan beberapa perintah lain akan dilaksanakan untuk log kegagalan, memaparkan ralat secara terperinci, atau hanya melaksanakan beberapa program alternatif.