FOR loop & pernyataan WHILE

Pengantar Bash Scripting

Alex Scriven

Data Scientist

Struktur dasar FOR loop

Python:

for x in range(3):
    print(x)
0
1
2

R:

for (x in seq(3)){
    print(x)
}
[1] 1
[1] 2
[1] 3
Pengantar Bash Scripting

FOR loop di Bash

Struktur dasar di Bash serupa:

for x in 1 2 3

do echo $x done
1
2
3
Pengantar Bash Scripting

Rentang angka di FOR loop

Bash punya cara ringkas membuat rentang numerik, disebut 'brace expansion':

  • {START..STOP..INCREMENT}
for x in {1..5..2}

do echo $x done
1
3
5
Pengantar Bash Scripting

Sintaks tiga ekspresi FOR loop

Cara umum lain menulis FOR loop adalah sintaks 'tiga ekspresi'.

  • Tiga ekspresi diapit tanda kurung ganda
  • Bagian pertama: ekspresi awal (x=2)
  • Bagian tengah: kondisi berhenti (x<=4)
  • Bagian akhir: ekspresi kenaikan/penurunan (x+=2)

 

 

for ((x=2;x<=4;x+=2))
do 
    echo $x
done
2
4
Pengantar Bash Scripting

Perluasan glob

Bash juga mendukung perluasan pola ke dalam for loop dengan simbol *, misalnya untuk file dalam direktori.

Contoh, ada dua dokumen teks di folder /books:

for book in books/*
do  
    echo $book
done
books/book1.txt
books/book2.txt
Pengantar Bash Scripting

Shell di dalam shell: ulasan

Ingat membuat shell di dalam shell dengan notasi $()?

Anda bisa memanggilnya langsung dalam for loop!

Misalkan struktur folder seperti ini:

Struktur direktori books

Pengantar Bash Scripting

Shell-di-dalam-shell ke FOR loop

Kita bisa melakukan loop pada hasil pemanggilan shell-di-dalam-shell:

for book in $(ls books/ | grep -i 'air')

do echo $book done
AirportBook.txt
FairMarketBook.txt
Pengantar Bash Scripting

Sintaks pernyataan WHILE

Mirip FOR loop, tetapi Anda menetapkan suatu kondisi yang diuji tiap iterasi.

Iterasi berlanjut sampai kondisi tidak terpenuhi.

  • Gunakan kata while alih-alih for
  • Bungkus kondisi dalam tanda kurung siku
    • Gunakan flag perbandingan numerik yang sama seperti pada IF (mis. -le)
  • Beberapa kondisi dapat dirangkai atau gunakan double-brackets seperti IF dengan && (AND) atau || (OR)
  • Pastikan ada perubahan dalam kode yang menghentikan loop (jika tidak, bisa jadi loop tak berhingga)
Pengantar Bash Scripting

Contoh pernyataan WHILE

Contoh sederhana:

x=1

while [ $x -le 3 ];
do echo $x ((x+=1)) done
1
2
3
Pengantar Bash Scripting

Waspadai loop tak berhingga

Waspadai WHILE loop tak berhingga jika kondisi berhenti tidak pernah terpenuhi.

x=1
while [ $x -le 3 ]; 
do
    echo $x
    # jangan naikkan x. x tak pernah mencapai 3!
    # ((x+=1)) 
done

Ini akan mencetak 1 tanpa henti.

Pengantar Bash Scripting

Ayo berlatih!

Pengantar Bash Scripting

Preparing Video For Download...