Lompat ke konten utama

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

←

Administrasi Linux Dasar

Pelajaran 15 dari 17

Skrip bash untuk otomasi

Perulangan dan fungsi: for, while, dan nama() { }

Setelah pelajaran ini kamu bisa mengulang perintah untuk banyak berkas atau angka dengan for dan while, serta membungkus langkah berulang dalam fungsi.

±14 menitDiperiksa 3 Okt 2026

Materi

for nama in daftar; do ...; done menjalankan badan perulangan sekali untuk setiap kata di daftar, dengan kata itu tersimpan di variabel nama. Daftarnya boleh ditulis langsung, berupa pola berkas seperti *.csv, berupa rentang {1..12}, atau keluaran perintah seperti $(seq 1 3). while kondisi; do ...; done mengulang selama kondisinya berhasil, dan until kebalikannya.

for f in /opt/kasir/*.csv; do
  echo "$f: $(wc -l < $f) baris"
done

for bulan in {1..3}; do
  mkdir -p arsip/bulan-$bulan
done

break menghentikan perulangan lebih awal dan continue melompat ke putaran berikutnya. Perulangan for paling sering dipakai admin untuk pekerjaan yang sama atas banyak berkas: menyalin, mengganti izin, atau menghitung baris. Sebelum menjalankan perulangan yang menghapus atau memindahkan, jalankan dulu versi yang hanya echo nama berkasnya, supaya daftar yang akan disentuh terlihat.

Fungsi memberi nama pada sekelompok perintah: nama() { perintah; }. Di dalam fungsi, $1, $2, dan $# merujuk ke argumen fungsi itu, bukan argumen skrip. local membuat variabel yang hanya hidup di dalam fungsi, dan return N mengakhiri fungsi dengan kode keluar N, yang bisa dibaca if seperti perintah biasa.

cek_layanan() {
  if pgrep -f "$1" > /dev/null; then
    echo "JALAN $1"
  else
    echo "MATI $1"
    return 1
  fi
}
cek_layanan sshd

Kesalahan umum: pola seperti *.bak yang tidak cocok dengan berkas apa pun tidak hilang, melainkan dipakai apa adanya sebagai kata *.bak, sehingga badan perulangan berjalan sekali dengan nama berkas yang tidak ada. Kesalahan kedua: menulis fungsi tanpa spasi sesudah { atau tanpa titik koma sebelum }, yang membuat bash menunggu baris lanjutan.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke

Tampilkan 1 lagi