Unix / Linux - Jenis Shell Loop

Pada bab ini, kita akan membahas loop shell di Unix. Sebuah loop adalah alat pemrograman yang kuat yang memungkinkan Anda untuk mengeksekusi sekumpulan perintah berulang kali. Dalam bab ini, kita akan memeriksa jenis loop berikut yang tersedia untuk programmer shell -

  • Loop sementara
  • Putaran untuk
  • Sampai loop
  • Loop pemilihan

Anda akan menggunakan loop berbeda berdasarkan situasinya. Misalnya, filewhileloop mengeksekusi perintah yang diberikan sampai kondisi yang diberikan tetap benar; ituuntil loop dijalankan sampai kondisi tertentu menjadi true.

Setelah Anda memiliki praktik pemrograman yang baik, Anda akan mendapatkan keahlian dan dengan demikian, mulailah menggunakan loop yang sesuai berdasarkan situasinya. Sini,while dan for loop tersedia di sebagian besar bahasa pemrograman lain seperti C, C++ dan PERL, dll.

Loop Bersarang

Semua loop mendukung konsep bersarang yang berarti Anda dapat menempatkan satu loop di dalam loop lain yang serupa atau berbeda. Penyarangan ini dapat meningkat hingga beberapa kali berdasarkan kebutuhan Anda.

Berikut adalah contoh pembuatan sarang whilelingkaran. Loop lain dapat disarangkan berdasarkan persyaratan pemrograman dengan cara yang serupa -

Bersarang sementara Loops

Anda dapat menggunakan loop sementara sebagai bagian dari badan loop sementara lainnya.

Sintaksis

while command1 ; # this is loop1, the outer loop
do
   Statement(s) to be executed if command1 is true

   while command2 ; # this is loop2, the inner loop
   do
      Statement(s) to be executed if command2 is true
   done

   Statement(s) to be executed if command1 is true
done

Contoh

Berikut adalah contoh sederhana dari loop bersarang. Mari tambahkan loop hitung mundur lain di dalam loop yang Anda gunakan untuk menghitung sampai sembilan -

#!/bin/sh

a=0
while [ "$a" -lt 10 ]    # this is loop1
do
   b="$a"
   while [ "$b" -ge 0 ]  # this is loop2
   do
      echo -n "$b "
      b=`expr $b - 1`
   done
   echo
   a=`expr $a + 1`
done

Ini akan menghasilkan hasil sebagai berikut. Penting untuk diperhatikan caranyaecho -nbekerja di sini. Sini-n memungkinkan gema menghindari pencetakan karakter baris baru.

0
1 0
2 1 0
3 2 1 0
4 3 2 1 0
5 4 3 2 1 0
6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
8 7 6 5 4 3 2 1 0
9 8 7 6 5 4 3 2 1 0