Android

Bash semasa gelung

Shell Scripting - For Loops

Shell Scripting - For Loops

Isi kandungan:

Anonim

Gelung adalah salah satu konsep dasar bahasa pengaturcaraan. Gelung berguna apabila anda ingin menjalankan beberapa kali arahan sehingga keadaan tertentu dipenuhi.

Dalam bahasa skrip seperti Bash, gelung berguna untuk mengautomasikan tugas berulang. Terdapat 3 asas gelung membina dalam skrip Bash, untuk gelung, sementara gelung, dan sehingga gelung.

Tutorial ini menerangkan asas-asas sementara gelung dalam Bash serta pemecahan dan meneruskan pernyataan untuk mengubah aliran gelung.

Bash semasa Loop

Gelung sementara digunakan untuk melaksanakan satu set arahan tertentu yang tidak diketahui berapa kali selagi keadaan yang diberikan mengevaluasi menjadi benar.

Bash semasa gelung mengambil bentuk berikut:

while do done

Keadaan ini dinilai sebelum melaksanakan arahan. Sekiranya keadaan tersebut dinilai benar, arahan dilaksanakan. Jika tidak, jika keadaan menilai palsu, gelung akan ditamatkan dan kawalan program akan dihantar kepada arahan yang berikut.

Dalam contoh di bawah, pada setiap lelaran gelung mencetak nilai semasa pembolehubah i dan menambah pemboleh ubah oleh satu.

i=0 while do echo Number: $i ((i++)) done

Gelung Tue melaraskan selagi i kurang atau sama dengan dua. Ia akan menghasilkan output berikut:

Number: 0 Number: 1 Number: 2

Infinite semasa Loop

Gelung tak terhingga adalah gelung yang mengulangi selama-lamanya dan tidak pernah tamat. Jika keadaan sentiasa menilai dengan benar, anda akan mendapat gelung tak terhingga.

Dalam contoh berikut, kami menggunakan perintah terbina dalam : yang selalu kembali benar untuk membuat gelung tak terhingga. Anda juga boleh menggunakan perintah terbina dalam atau pernyataan lain yang selalu kembali benar.

while: do echo "Press to exit." sleep 1 done while: do echo "Press to exit." sleep 1 done

Gelung semasa di atas akan berjalan selama-lamanya. Anda boleh menamatkan gelung dengan menekan CTRL+C

Berikut adalah bersamaan satu talian:

while:; do echo 'Press to exit.'; sleep 1; done while:; do echo 'Press to exit.'; sleep 1; done

Bacalah Talian Fail Mengikut Talian

Salah satu kegunaan yang paling biasa dalam gelung sementara ialah membaca fail, aliran data atau baris pemboleh ubah mengikut baris.

Dalam contoh berikut gelung sementara akan membaca baris fail /etc/passwd mengikut baris dan mencetak setiap baris.

file=/etc/passwd while read -r line; do echo $line done < "$file"

Daripada mengawal gelung sementara dengan syarat kami menggunakan pengalihan input ( < "$file" ) untuk lulus fail ke read yang merupakan arahan yang mengawal gelung. Gelung sementara akan berjalan sehingga baris terakhir dibaca.

Apabila membaca garis fail mengikut baris sentiasa gunakan read dengan pilihan -r untuk menghalang garis belakang untuk bertindak sebagai watak melarikan diri.

Secara lalai arahan read mengimbas aksara ruang kosong utama / jejak (ruang dan tab). Gunakan opsyen IFS= sebelum arahan read untuk mengelakkan kelakuan ini

file=/etc/passwd while IFS= read -r line; do echo $line done < "$file"

Teruskan dan Teruskan Kenyataan

Istirahat dan meneruskan kenyataan boleh digunakan untuk mengawal pelaksanaan gelung sementara.

Kenyataan Cuti

Kenyataan rehat menamatkan gelung semasa dan melewati kawalan program ke arahan yang mengikuti gelung yang ditamatkan. Ia biasanya digunakan untuk menamatkan gelung apabila keadaan tertentu dipenuhi.

Dalam contoh berikut, pelaksanaan gelung akan terganggu apabila item berulang semasa bersamaan dengan 2 .

i=0 while do echo "Number: $i" ((i++)) if]; then break fi done echo 'All Done!'

Number: 0 Number: 1 All Done!

Teruskan Kenyataan

Kenyataan yang berterusan keluar dari lelaran semasa gelung dan lulus kawalan program ke lelaran seterusnya gelung.

Dalam perkara berikut, sekali item berulang semasa adalah sama dengan 2 penyataan terus akan menyebabkan pelaksanaan untuk kembali ke permulaan gelung dan untuk meneruskan dengan lelaran seterusnya.

i=0 while do ((i++)) if]; then continue fi echo "Number: $i" done echo 'All Done!'

Number: 1 Number: 3 Number: 4 Number: 5 All Done!

Kesimpulannya

Sekarang anda harus mempunyai pemahaman yang baik tentang cara menggunakan bash semasa gelung.

terminal gelung bash