GNU/Linux >> Belajar Linux >  >> Linux

Loop while dalam Script Shell

Hari ini kita akan belajar tentang loop sementara dalam skrip shell. Loop adalah bagian penting dari bahasa pemrograman apa pun. Saat kita menulis kode untuk mengeksekusi sekumpulan pernyataan 15 kali, menulis pernyataan yang sama berulang kali tidak akan produktif.

Loop menghemat waktu programmer.

Salah satu loop yang paling umum digunakan dalam bahasa pemrograman apa pun adalah loop while. Kami menggunakan perulangan while dalam skrip shell untuk mengulang serangkaian pernyataan selama kondisi tertentu terpenuhi setelah setiap iterasi.

Bagaimana cara kerja while loop dalam skrip shell?

Perulangan while dalam skrip shell membantu Anda membuat kode menjadi efisien dengan mengurangi jumlah kode yang perlu Anda tulis.

Ini berguna ketika Anda harus melakukan sesuatu dalam skrip Anda berulang kali. Mari kita pahami cara kerja loop sementara dalam skrip shell melalui sintaksnya:

while [ condition ] 
do 
    statement 1
    statement 2
done

Di sini, kami memiliki tiga kata kunci, yaitu sementara , lakukan dan selesai .

  • Kata kunci pertama 'sementara' menunjukkan awal dari loop ketika kita menjalankan skrip shell.
  • Diikuti oleh kondisi yang diapit tanda kurung bulat.
  • Kata kunci 'do' digunakan sebelum pernyataan yang akan dieksekusi dalam perulangan.
  • Setiap while loop terdiri dari kondisi yang diikuti oleh sekumpulan perintah.
  • Kemudian kita menemukan kata kunci done yang menandai akhir dari perulangan.

Anggap do dan done sebagai tanda kurung buka dan tutup dalam bahasa pemrograman lain

Pertama, kondisinya dievaluasi. Jika kondisinya TRUE, pernyataan berikut lakukan akan dieksekusi. Ini berulang sampai ada titik ketika kondisi bernilai FALSE.

Setelah kondisi salah, loop akan dihentikan.

Hal penting yang perlu diingat adalah, seperti pemrograman C, skrip shell peka terhadap huruf besar-kecil. Oleh karena itu, Anda harus berhati-hati saat menggunakan kata kunci dalam kode Anda.

Jika Anda tertarik untuk mempelajari tentang pernyataan bersyarat, klik di sini untuk membaca tentang if-else dalam skrip shell.

Menggunakan while loop dalam skrip shell

Hanya membaca teori dan melirik sintaks tidak akan menguntungkan Anda sampai dan kecuali Anda dapat menggunakannya secara praktis dalam kode Anda.

Oleh karena itu, untuk pemahaman yang lebih baik tentang konsep dan aplikasi praktisnya, lihat contoh berikut.

While loop untuk mencetak 5 angka pertama

Itu selalu yang terbaik untuk memulai dengan sesuatu yang mendasar. Di sini kita akan menggunakan while loop dalam skrip shell untuk mencetak 5 bilangan asli pertama di layar kita.

Skrip sederhana ini akan berulang ketika nilai variabel 'a' kurang dari ('-lt') 5. Kondisi ini berlaku untuk angka dari 1 hingga 4, oleh karena itu, perintah akan dijalankan untuk hal yang sama.

Untuk bilangan apa pun yang lebih besar dari atau sama dengan 5, kondisinya salah. Oleh karena itu, loop akan dihentikan. Berikut adalah bagaimana kode akan ditulis.

#!/bin/sh
a=1
while [ $a -lt 5 ]
do
    echo $a
    ((a++))
done

Menemukan Faktorial Menggunakan Loop while di Skrip Shell

Salah satu contoh yang lebih praktis adalah menggunakan fungsionalitas loop sementara untuk menyelesaikan tugas. Mari kita cari faktorial suatu bilangan.

Kode berikut menunjukkan bagaimana kita dapat menyelesaikan tugas ini menggunakan loop while.

#!/bin/sh
counter=5
factorial=1
while [ $counter -gt 0 ]
do 
      factorial=$(( $factorial * $counter ))
      ((counter--))
done 
echo $factorial

Seperti yang Anda lihat, faktorial untuk loop while dicetak dengan benar sebagai 120.

Membaca File di Script Shell Menggunakan Perulangan while

Ketika kita berurusan dengan file teks, while loop ternyata menjadi alat yang penting karena kita dapat membuat loop membaca seluruh file menggunakan sambil membaca perintah.

Perintah ini dapat membantu kita membaca isi file dari baris perintah. Kode berikut menggunakan fungsionalitas loop while dalam skrip shell untuk membaca konten file satu baris pada satu waktu, lalu mencetaknya di layar pengguna.

#!/bin/bash
FILE=$1
while read line
do
    # use $line variable to process line
    echo $line
done < $FILE

Seperti yang Anda lihat, saya telah memberikan nama file sebagai argumen karena dalam skrip shell kami, kami telah menggunakan $1 dan menetapkannya ke variabel FILE. Ini berarti argumen pertama akan diterima sebagai nama file dan skrip akan melanjutkan untuk membaca file.

Juga, kami menggunakan operator pengalihan input dalam skrip setelah selesai sehingga kami dapat menggunakan nama file secara langsung sebagai argumen saat menjalankan skrip.

Jika Anda melewatkan bagian itu, perintah Anda akan terlihat seperti baris:

bash file.sh < filename.txt

Jadi Anda lihat, arahkan input di dalam skrip atau saat menjalankan skrip. Hasilnya sama.

Kesimpulan

Loop while dalam skrip shell adalah senjata utama di gudang senjata setiap programmer shell. Ini adalah alat terbaik untuk digunakan saat Anda perlu menjalankan serangkaian pernyataan yang diulang berdasarkan suatu kondisi.

Dengan mengotomatiskan eksekusi pernyataan tertentu, Anda tidak hanya perlu menulis lebih sedikit kode, tetapi juga membebaskan waktu yang dapat digunakan untuk tugas yang lebih penting seperti debugging.

Kami harap tutorial ini dapat membantu Anda memahami cara menggunakan fungsi while loop. Jika Anda memiliki pertanyaan, umpan balik, atau saran, jangan ragu untuk menghubungi kami di komentar di bawah.


Linux
  1. Menyesuaikan shell Bash

  2. Izinkan Setuid Pada Skrip Shell?

  3. Arti dari $? Dalam Skrip Shell?

  1. Inti Dari Perintah Eksternal `cd`?

  2. Tertangkap Dalam Lingkaran? Awk While, Do While, For Loop, Break, Continue, Exit Contoh

  3. Menjaga Anda di Loop – Contoh Bash Untuk, Sementara, Sampai Loop

  1. Array Asosiatif Dalam Skrip Shell?

  2. Penguncian yang Benar Dalam Skrip Shell?

  3. Diutamakan Operator Logika Shell &&, ||?