Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

Bash Lanjutan

Pelajaran 12 dari 15

Skrip yang tahan banting

Misi: skrip impor pesanan yang tahan banting

Setelah pelajaran ini kamu bisa menggabungkan pustaka fungsi, array, log berlevel, dan kode keluar dalam skrip impor, serta membaca akibat set -e dan set -u.

±17 menitDiperiksa 5 Okt 2026

Materi

Setiap malam cabang mengirim berkas pesanan ke folder pesanan. Kadang ada berkas yang kosong karena kasir lupa menutup kas, kadang berkas harga atau stok belum terkirim sama sekali. Tim gudang butuh skrip impor yang mencatat apa yang terjadi dan menolak berjalan bila berkas wajib tidak lengkap.

Empat latihan berikut membangunnya. Lulus misi ini bila minimal 80 persen latihannya benar.

Pustaka lib.sh menyediakan log dan gagal. Skrip impor mengumpulkan berkas dengan array dari pola pesanan/*.csv, mencatat berapa yang ditemukan, lalu memeriksa setiap berkas: yang kosong dicatat sebagai WARN dan dilewati dengan continue, yang berisi dicatat sebagai INFO beserta jumlah barisnya. Skrip pemeriksa berkas wajib memakai array juga, dan kode keluarnya sama dengan jumlah berkas yang hilang, sehingga 0 berarti lengkap.

Dua pilihan ganda di akhir membaca skrip yang memakai set -euo pipefail. Keduanya menguji pengecualian yang ditulis manual Bash: variabel kosong di bawah -u, dan perintah gagal di dalam if atau di depan && yang tidak menghentikan skrip di bawah -e.

Latihan

0/4 lulus

Misi akhir modul: luluskan minimal 4 dari 4 tugas. Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 3 dari 4

Skrip ini kadang dijalankan tanpa argumen dan saat itu harus memakai folder cadangan. Baris TUJUAN mana yang membuatnya bekerja di bawah set -u?

#!/bin/bash
set -euo pipefail
TUJUAN=$1
mkdir -p "$TUJUAN"
Pilih satu jawaban

Latihan 4 dari 4

hasil.log tidak memuat kata GAGAL maupun SELESAI. Apa yang dicetak skrip ini?

#!/bin/bash
set -e
if grep -q GAGAL hasil.log; then echo "ada gagal"; fi
grep -q SELESAI hasil.log && echo "selesai"
echo "baris akhir"
Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke

Tampilkan 1 lagi