Unix / Linux - Kontrol Shell Loop
Dalam bab ini, kita akan membahas kontrol loop shell di Unix. Sejauh ini Anda telah melihat cara membuat loop dan bekerja dengan loop untuk menyelesaikan tugas yang berbeda. Terkadang Anda perlu menghentikan satu loop atau melewati iterasi loop.
Dalam bab ini, kita akan belajar mengikuti dua pernyataan yang digunakan untuk mengontrol loop shell-
Itu break pernyataan
Itu continue pernyataan
Loop tak terbatas
Semua loop memiliki masa hidup yang terbatas dan keluar setelah kondisinya salah atau benar tergantung pada loop.
Sebuah loop dapat berlanjut selamanya jika kondisi yang diperlukan tidak terpenuhi. Perulangan yang mengeksekusi selamanya tanpa menghentikan eksekusi selama beberapa kali. Untuk alasan ini, loop semacam itu disebut loop tak terbatas.
Contoh
Berikut adalah contoh sederhana yang menggunakan while loop untuk menampilkan angka nol sampai sembilan -
#!/bin/sh
a=10
until [ $a -lt 10 ]
do
echo $a
a=`expr $a + 1`
done
Putaran ini berlanjut selamanya karena a selalu greater than atau equal to 10 dan tidak pernah kurang dari 10.
Pernyataan istirahat
Itu breakpernyataan digunakan untuk menghentikan eksekusi seluruh loop, setelah menyelesaikan eksekusi semua baris kode hingga pernyataan break. Ini kemudian turun ke kode setelah akhir loop.
Sintaksis
Pengikut break pernyataan digunakan untuk keluar dari loop -
break
Perintah break juga dapat digunakan untuk keluar dari loop bersarang menggunakan format ini -
break n
Sini n menentukan nth melingkupi loop ke pintu keluar dari.
Contoh
Berikut adalah contoh sederhana yang menunjukkan bahwa perulangan berakhir segera a menjadi 5 -
#!/bin/sh
a=0
while [ $a -lt 10 ]
do
echo $a
if [ $a -eq 5 ]
then
break
fi
a=`expr $a + 1`
done
Setelah eksekusi, Anda akan menerima hasil berikut -
0
1
2
3
4
5
Berikut adalah contoh sederhana dari loop for bersarang. Skrip ini keluar dari kedua loop jikavar1 equals 2 dan var2 equals 0 -
#!/bin/sh
for var1 in 1 2 3
do
for var2 in 0 5
do
if [ $var1 -eq 2 -a $var2 -eq 0 ]
then
break 2
else
echo "$var1 $var2"
fi
done
done
Setelah dieksekusi, Anda akan menerima hasil sebagai berikut. Di loop dalam, Anda memiliki perintah break dengan argumen 2. Ini menunjukkan bahwa jika suatu kondisi terpenuhi, Anda harus keluar dari loop luar dan akhirnya dari loop dalam juga.
1 0
1 5
Pernyataan lanjutkan
Itu continue Pernyataan ini mirip dengan break perintah, kecuali itu menyebabkan iterasi saat ini dari loop untuk keluar, bukan seluruh loop.
Pernyataan ini berguna ketika telah terjadi kesalahan tetapi Anda ingin mencoba menjalankan pengulangan berikutnya.
Sintaksis
continue
Seperti dengan pernyataan break, argumen integer dapat diberikan ke perintah lanjutkan untuk melewati perintah dari loop bersarang.
continue n
Sini n menentukan nth melingkupi loop untuk melanjutkan.
Contoh
Loop berikut menggunakan continue pernyataan yang kembali dari pernyataan lanjutkan dan mulai memproses pernyataan berikutnya -
#!/bin/sh
NUMS="1 2 3 4 5 6 7"
for NUM in $NUMS
do
Q=`expr $NUM % 2`
if [ $Q -eq 0 ]
then
echo "Number is an even number!!"
continue
fi
echo "Found odd number"
done
Setelah eksekusi, Anda akan menerima hasil berikut -
Found odd number
Number is an even number!!
Found odd number
Number is an even number!!
Found odd number
Number is an even number!!
Found odd number