Pengantar Bash Scripting
Alex Scriven
Data Scientist
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
Struktur dasar di Bash serupa:
for x in 1 2 3do echo $x done
1
2
3
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
Cara umum lain menulis FOR loop adalah sintaks 'tiga ekspresi'.
x=2)x<=4)x+=2)
for ((x=2;x<=4;x+=2))
do
echo $x
done
2
4
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
Ingat membuat shell di dalam shell dengan notasi $()?
Anda bisa memanggilnya langsung dalam for loop!
Misalkan struktur folder seperti ini:

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
Mirip FOR loop, tetapi Anda menetapkan suatu kondisi yang diuji tiap iterasi.
Iterasi berlanjut sampai kondisi tidak terpenuhi.
while alih-alih for-le)&& (AND) atau || (OR)Contoh sederhana:
x=1while [ $x -le 3 ];do echo $x ((x+=1)) done
1
2
3
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