Ada while condition; do ...; done
loop terkenal , tetapi apakah ada do... while
loop gaya yang menjamin setidaknya satu eksekusi blok?
shell
control-flow
Shawn J. Goff
sumber
sumber
Jawaban:
Versi yang sangat serbaguna
do ... while
memiliki struktur ini:Contohnya adalah:
Karena (tidak ada nilai yang ditetapkan untuk
i
) loop dijalankan 20 kali.UN-Mengomentari garis yang ditetapkan
i
ke 16i=16
, loop dijalankan 4 kali.Untuk
i=16
,i=17
,i=18
dani=19
.Jika saya diatur ke (katakanlah 26) pada titik yang sama (mulai), perintah masih dijalankan pertama kali (sampai perintah loop break diuji).
Tes untuk sementara waktu harus benar (status keluar dari 0).
Tes harus dibalik untuk loop sampai, yaitu: menjadi palsu (status keluar bukan 0).
Versi POSIX perlu beberapa elemen diubah untuk berfungsi:
sumber
set -e
sesuatu yang gagal di dalam blok kondisi sementara tidak akan menghentikan eksekusi: misset -e; while nonexistentcmd; true; do echo "SHiiiiit"; exit 3; done
- - sial terjadi. Jadi, jika Anda menggunakan ini, Anda harus benar-benar berhati-hati dengan penanganan kesalahan yaitu rantai semua perintah dengan&&
!Tidak ada do ... while atau do ... sampai loop, tetapi hal yang sama dapat dilakukan seperti ini:
untuk sampai:
sumber