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.