Materi
case mencocokkan satu kata dengan beberapa pola, dari atas ke bawah. Cabang pertama yang cocok dijalankan sampai tanda ;;, lalu bash melompat ke esac tanpa memeriksa pola sisanya. Polanya adalah pola glob, sama dengan pola nama berkas: * cocok dengan teks apa pun, ? dengan satu karakter, [0-9] dengan satu digit. Tanda | memisahkan beberapa pola untuk satu cabang, dan *) di akhir menjadi cabang bawaan.
case "$1" in
harian) echo "Rekap harian" ;;
mingguan|pekanan) echo "Rekap mingguan" ;;
*) echo "mode tidak dikenal: $1" >&2; exit 2 ;;
esacRantai if dan elif dengan [ "$x" = a ] || [ "$x" = b ] bisa melakukan hal yang sama, tetapi case lebih pendek dan bisa mencocokkan pola, misalnya akhiran nama berkas. Karena urutannya menentukan, pola yang lebih khusus ditulis di atas dan *) selalu paling bawah.
for f in masuk/*; do
case "$f" in
*.csv) mv "$f" data/ ;;
*.jpg|*.png) mv "$f" gambar/ ;;
esac
donePemakaian penting lainnya adalah membaca opsi. Perulangan while [ $# -gt 0 ] memeriksa "$1" dengan case: -v menyalakan penanda lalu shift, -o mengambil $2 sebagai nilai lalu shift 2, pola -* menangkap opsi yang tidak dikenal, dan *) memakai break untuk berhenti saat bertemu argumen biasa.