Untuk, Sementara Dan Hingga Loops - Kamplongan

Untuk, Sementara dan Hingga Loops

Loop adalah fitur yang kuat dalam bahasa pemrograman apa pun. Jika Kalian belum mengetahuinya, loop adalah cara untuk mengulang kode berdasarkan kriteria tertentu.

Sebagai contoh, bayangkan Kalian harus mencetak angka dari 1 sampai 10. Kalian dapat menulis perintah echo sepuluh kali tetapi itu sangat primitif. Kalian menggunakan satu lingkaran dan dalam 3-4 baris kode, itu bisa dilakukan.

Itu contoh paling sederhana yang bisa saya pikirkan. Kami akan membagikan contoh berguna yang sebenarnya saat saya mendiskusikan bash loop dengan Kalian.

Ada tiga jenis loop di Bash:

Kami akan menunjukkan ketiga jenis perulangan dalam tutorial. Mari kita mulai dengan yang paling umum.

Untuk loop di bash

Inilah sintaks untuk ‘for loop’ di bash:

for arg in LIST; do
 commands
done

DAFTAR di sini bisa berupa larik atau daftar item. Ekspansi penjepit juga populer untuk perulangan.

Ambil skenario paling sederhana yang saya sebutkan di awal. Mari cetak angka dari 1 sampai 10 menggunakan for loop:

#!/bin/bash

for num in {1..10}; do
	echo $num
done

Jika Kalian menjalankannya, Kalian akan melihat output seperti ini:

abhishek@itsfoss:~/bash_scripts$ ./for-loop.sh
1
2
3
4
5
6
7
8
9
10

Kalian juga bisa menggunakan for num in 1 2 3 4 5 6 7 8 9 10; do tetapi menggunakan ekspansi penjepit membuat kode terlihat lebih pendek dan cerdas.

{..} digunakan untuk memperluas pola. Kau gunakan {d..h} dan itu setara dengan d e f g h . Lebih lanjut tentang ekspansi brace dapat ditemukan di artikel ini.

Menggunakan Brace Expansion di Bash Shell

Ekspansi penjepit di bash shell adalah fitur yang kurang dikenal tetapi mengagumkan. Pelajari cara menggunakannya seperti pengguna Pro linux dengan contoh praktis.

linux.png” alt=””/>

💡

Jika Kalian terbiasa dengan pemrograman C, Kalian mungkin mau menggunakan for loop dengan gaya C di bash:

untuk ((i = 0 ; i gema $i
Selesai

Mari kita lihat contoh lain yang menampilkan semua isi array di bash:

#!/bin/bash

distros=(Ubuntu Fedora Debian Alpine)

for i in "${distros[@]}"; do
	echo $i
done

Jika Kalian menjalankan skrip, itu akan menampilkan semua distro yang ditentukan dalam larik:

Ubuntu
Fedora
Debian
Alpine

Sementara loop di bash

While loop menguji suatu kondisi dan kemudian terus berulang selama kondisinya benar.

while [ condition ]; do
  commands
done

Jika Kalian mengambil contoh sebelumnya, itu dapat ditulis ulang menggunakan while loop seperti ini:

#!/bin/bash

num=1
while [ $num -le 10 ]; do
	echo $num
	num=$(($num+1))
done

Seperti yang Kalian lihat, Kalian harus mendefinisikan variabel num ke 1 terlebih dahulu dan kemudian di badan loop, Kalian meningkatkan nilainya num oleh 1. Perulangan while memeriksa kondisi dan menjalankannya selama num kurang dari atau sama dengan 10.

Dengan demikian, menjalankan skrip sekarang akan menampilkan hasil persis seperti yang Kalian lihat sebelumnya dengan for loop.

1
2
3
4
5
6
7
8
9
10

Mari kita lihat contoh lain. Berikut adalah skrip bash yang menggunakan angka sebagai argumen dan menampilkan tabelnya.

#!/bin/bash

echo "Table for $1 is:"
index=1
while [ $index -le 10 ]; do
	echo $(($1*$index))
	index=$(($index+1))
done

Jika Kalian bingung tentang penggunaan $1, ini mewakili argumen pertama yang diteruskan ke skrip. Lihat bab 3 dari seri ini untuk detail lebih lanjut.

Jika Kalian menjalankan skrip, itu akan menampilkan output ini:

abhishek@itsfoss:~/bash_scripts$ ./table.sh 2
Table for 2 is:
2
4
6
8
10
12
14
16
18
20

Sampai loop di bash

Ini adalah format loop yang jarang digunakan. Berperilaku mirip dengan while loop. Perbedaannya di sini adalah bahwa perulangan berjalan sampai kondisi yang diperiksa benar. Ini berarti agar kode dalam loop dieksekusi, kondisinya masuk [ ] harus palsu.

Kami akan menjelaskannya sedikit. Mari kita lihat sintaksnya terlebih dahulu.

until [ condition ]; do
  commands
done

Sekarang, jika saya harus menggunakan contoh yang sama untuk mencetak angka dari 1 sampai 10 menggunakan pengulangan, akan terlihat seperti ini:

#!/bin/bash

num=1
until [ $num -gt 10 ]; do
	echo $num
	num=$(($num+1))
done

Bedanya di kondisi; selebihnya tetap sama.

  • While loop menjalankan while variabel num kurang dari atau sama dengan 10. Kondisi di [ ] harus benar agar loop dapat dieksekusi.
  • Sampai loop berjalan sampai variabel num menjadi lebih besar dari 10. Kondisi pada `[ ]` harus salah agar loop dapat dieksekusi.

Keduanya adalah cara berbeda untuk melakukan hal yang sama. While lebih populer karena Kalian akan menemukan persamaan while loop di sebagian besar bahasa pemrograman.

🏋️ Waktu latihan

Itu tadi menyenangkan. Waktu untuk melakukan beberapa latihan sekarang.

Latihan 1: Tulis skrip yang mengambil nomor sebagai argumen dan mencetak tabelnya. Skrip Kalian juga harus menampilkan pesan jika skrip dijalankan tanpa argumen.

Keluaran yang diharapkan:

$: ./table.sh
You forgot to enter a number

$: ./table.sh 3
3
6
9
12
15
18
21
24
27
30

Latihan 2: Tulis skrip yang mencantumkan semua file di direktori /var

Petunjuk: Gunakan for loop dengan /var/* sebagai ‘list’.

Kalian dapat mendiskusikan jawaban Kalian di utas khusus ini di Komunitas:

Latih Latihan di Bash Basics Series #8: For, While, dan until Loops

Jika Kalian mengikuti seri Bash Basics di It’s FOSS, Kalian dapat mengirimkan dan mendiskusikan jawaban latihan di akhir bab: Rekan anggota berpengalaman didorong untuk memberikan umpan balik mereka kepada anggota baru. Perhatikan bahwa mungkin ada lebih dari satu jawaban untuk masalah yang diberikan.

Seri bash basics akan segera berakhir. Sebagai bab terakhir dalam seri ini, Kalian akan belajar menggunakan fungsi dalam skrip bash minggu depan. Pantau terus.

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: