Bash Scripting Basics
Menulis script Bash sederhana untuk otomatisasi task harian
Bash Scripting Basics
Setelah paham command satu-satu, langkah berikutnya adalah menggabungkannya dalam script supaya task berulang bisa otomatis.
Struktur Script Minimal
Purpose: Membuat script Bash yang bisa dieksekusi.
Inputs: file .sh.
Outputs: script runnable.
Steps:
- Tulis shebang.
- Aktifkan mode aman ringan (
set -eu). - Beri executable permission.
Pitfalls: lupa
chmod +xmembuat script tidak bisa dijalankan langsung. Validation: script bisa dieksekusi tanpa error sintaks.
#!/usr/bin/env bash
set -eu
echo "Hello BASCORRO"chmod +x scripts/hello.sh
./scripts/hello.shVariables dan Argumen
Purpose: Membuat script menerima input dinamis. Inputs: argumen dari command line. Outputs: output sesuai argumen. Steps:
- Ambil argumen dengan
$1,$2. - Simpan ke variabel yang jelas.
- Tampilkan usage jika argumen kosong. Pitfalls: tidak validasi argumen membuat script error di tengah. Validation: script menolak input kosong dan sukses saat input valid.
#!/usr/bin/env bash
set -eu
TARGET_DIR="${1:-}"
if [ -z "$TARGET_DIR" ]; then
echo "Usage: ./scripts/check-dir.sh <dir>"
exit 1
fi
echo "Checking: $TARGET_DIR"
ls -la "$TARGET_DIR"Conditional dan Loop
Purpose: Menjalankan logika berdasarkan kondisi. Inputs: list file atau folder. Outputs: laporan sederhana. Steps:
- Gunakan
ifuntuk cek eksistensi. - Gunakan
foruntuk iterasi. - Cetak hasil tiap item. Pitfalls: lupa quote variable yang mengandung spasi. Validation: loop memproses semua item tanpa error parse.
#!/usr/bin/env bash
set -eu
for path in docs ros_ws scripts; do
if [ -d "$path" ]; then
echo "[OK] directory exists: $path"
else
echo "[MISS] directory not found: $path"
fi
doneInteractive Demo: Script Builder
Pakai demo ini untuk menyusun script minimal yang valid sebelum masuk mini project.
Interactive Demo: Script Builder
Mini Project: Workspace Health Check
Buat script scripts/workspace-check.sh yang:
- Mengecek folder
docs,ros_ws,scripts. - Menampilkan branch Git aktif.
- Menampilkan 3 commit terakhir.
Contoh isi script:
#!/usr/bin/env bash
set -eu
echo "== Workspace Check =="
for path in docs ros_ws scripts; do
[ -d "$path" ] && echo "[OK] $path" || echo "[MISS] $path"
done
echo "== Git =="
git rev-parse --abbrev-ref HEAD
git log --oneline -n 3Jalankan:
chmod +x scripts/workspace-check.sh
./scripts/workspace-check.shJangan menjalankan script yang belum kamu baca isinya. Selalu audit command
terlebih dahulu, terutama jika ada rm, mv, atau sudo.
Challenge
Modifikasi workspace-check.sh agar menerima argumen jumlah commit:
./scripts/workspace-check.sh 5Jika argumen kosong, gunakan default 3.
Next Steps
Setelah track ini, lanjut ke ROS 2 Fundamentals.