Soal 1Apa yang di-loop oleh for f in *.txt; do ... done?
Perulangan — Memproses File Satu per Satu dengan for
Artikel ini adalah bagian dari Kursus Linux yang membantumu menguasai keterampilan praktis Linux dari nol, mulai dari perintah dasar hingga shell script.
Loop daftar file dengan for f in *.txt, ulangi secara bersyarat dengan while [ "$i" -le 3 ] dan until, lewati nilai kosong dengan continue, dan berhenti di batas dengan break — divisualkan dan dipraktikkan di terminal browser.
Memproses daftar secara berurutan — for
for mengambil nilai yang kamu berikan satu per satu dan menjalankan pekerjaan yang sama pada masing-masing.
Bentuknya for v in a b c; do ... done, di mana v menjadi a, lalu b, lalu c secara berurutan.
Apa yang berada di antara do dan done adalah badan yang diulang.
Kamu bisa menuliskan nilainya langsung, memakai pola file seperti *.txt, atau memberi output dari $(...) sebuah perintah.
Tulis for f in *.txt dan tiap file .txt di direktori saat ini masuk ke f secara berurutan, sehingga kamu bisa menulis pekerjaan per file.
Memakai $(...) seperti for line in $(cat list.txt) membuatmu bisa me-loop output sebuah perintah.
Beginilah cara kamu menulis ringkasan daftar file atau pemrosesan batch lintas beberapa file.
for env in dev stg prod; do # proses nilai yang dilist secara berurutan
echo "deploying to $env"
done
for f in *.sh; do # proses file .sh secara berurutan
echo "script: $f"
done
for menarik item dari daftar ke f satu per satu dan menjalankan badan, lalu selesai di done begitu item habis.| Syntax | Arti | Example |
|---|---|---|
for v in a b c; do … done | proses nilai yang dilist secara berurutan | for v in dev stg prod; do echo $v; done |
for f in *.txt; do … | proses file yang cocok secara berurutan | for f in *.txt; do wc -l "$f"; done |
for x in $(cmd); do … | proses output perintah secara berurutan | for d in $(ls); do echo $d; done |
do … done | awal dan akhir badan loop | for v in a b; do echo $v; done |
Loop berdasarkan kondisi — while / until
while mengulang selama kondisinya benar.
Seperti pada while [ "$i" -lt 3 ]; do ... done, kamu menaikkan counter di dalam badan untuk menuju akhir.
until kebalikannya — ia mengulang sampai kondisinya menjadi benar.
Ia cocok untuk pekerjaan yang jumlah putarannya tidak ditentukan di awal.
i=1
while [ "$i" -le 3 ]; do # ulang selama i bernilai 3 atau kurang
echo "try $i"
i=$((i + 1))
done # try 1 / try 2 / try 3
i=1
until [ "$i" -gt 3 ]; do # ulang sampai kondisinya menjadi benar
echo "i=$i"
i=$((i + 1))
done # i=1 / i=2 / i=3
while mengulang badan selama kondisinya benar; until mengulangnya sampai kondisinya menjadi benar. Keduanya menaikkan counter di badan untuk menuju akhir.| Syntax | Arti | Example |
|---|---|---|
while [ cond ]; do … done | ulang selama kondisinya benar | while [ "$i" -lt 3 ]; do …; done |
until [ cond ]; do … done | ulang sampai kondisinya menjadi benar | until [ -f done.flag ]; do …; done |
Mengendalikan loop for — break / continue
Bahkan di tengah loop for, kamu bisa mengubah alurnya dengan break dan continue.
continue melewati sisa putaran itu dan lanjut ke item berikutnya, sedangkan break mengakhiri loop itu sendiri.
Gabungkan keduanya dengan sebuah kondisi seperti if [ kondisi ]; then continue; fi atau if [ kondisi ]; then break; fi untuk melewati item yang tidak kamu butuhkan atau berhenti begitu cukup.
for n in 1 2 3 4 5; do
if [ "$n" -eq 3 ]; then continue; fi # lewati 3
if [ "$n" -eq 5 ]; then break; fi # keluar di 5
echo "n=$n"
done # n=1 / n=2 / n=4
for menjalankan badan secara berurutan mulai dari n=1. Di n=3 continue melewati sisanya dan lanjut, dan di n=5 break mengakhiri loop itu sendiri (output n=1 / n=2 / n=4).| Syntax | Arti | Example |
|---|---|---|
continue | lewati putaran ini dan lanjut ke berikutnya | if [ -z "$x" ]; then continue; fi |
break | keluar dari loop di tengah jalan | if [ "$n" -gt 100 ]; then break; fi |
Mengendalikan loop while — break / continue
Di samping pemeriksaan kondisi pada while, memakai break dan continue membuatmu bisa berhenti lebih awal atau melewati sebuah putaran.
continue melewati putaran itu dan kembali ke pemeriksaan kondisi, sedangkan break keluar dari loop tanpa menunggu kondisi.
Waspadai ini: jika kamu tidak menaruh pembaruan counter di awal badan (sebelum continue), putaran yang dilewati tidak akan memperbaruinya dan loop tak pernah berakhir.
i=0
while [ "$i" -lt 10 ]; do
i=$((i + 1)) # naikkan di awal
if [ "$i" -eq 3 ]; then continue; fi # lewati putaran ke-3
if [ "$i" -eq 6 ]; then break; fi # keluar di putaran ke-6
echo "attempt $i"
done # attempt 1 / 2 / 4 / 5
while menjalankan badan selama kondisinya benar, menaikkan i sebesar 1 tiap kali. Di i=3 continue kembali ke pemeriksaan kondisi, dan di i=6 break mengakhiri loop tanpa menunggu kondisi (output attempt 1 / 2 / 4 / 5).| Syntax | Arti | Example |
|---|---|---|
continue | lewati putaran ini, balik ke cek | if [ $((i % 3)) -eq 0 ]; then continue; fi |
break | keluar dari loop tanpa menunggu kondisi | if [ "$found" -ge 4 ]; then break; fi |
| di mana memperbarui counter | perbarui sebelum continue | taruh i=$((i + 1)) di awal badan |
Cek Pemahaman
Jawab setiap pertanyaan satu per satu.
Soal 2Keyword mana yang mengulang selama kondisinya benar?
Soal 3Mana yang hanya melewati putaran itu dan lanjut ke berikutnya?