Materi
Ekspansi parameter mengolah isi variabel langsung di dalam bash, tanpa menjalankan program seperti sed atau basename. Polanya pola glob, sama dengan di case. Bentuk # membuang awalan terpendek yang cocok dan ## awalan terpanjang; % membuang akhiran terpendek dan %% akhiran terpanjang. Isi variabelnya sendiri tidak berubah; hasilnya hanya dipakai di tempat ekspansi itu ditulis.
| Ekspansi | Hasil untuk f=/srv/data/penjualan.2026.csv |
|---|---|
| ${f##*/} | penjualan.2026.csv (nama berkas tanpa folder) |
| ${f%/*} | /srv/data (foldernya) |
| ${f%.*} | /srv/data/penjualan.2026 (tanpa akhiran terakhir) |
| ${f%%.*} | /srv/data/penjualan (tanpa semua akhiran) |
| ${#f} | 28 (panjang teks) |
Penggantian ditulis ${v/lama/baru} untuk kemunculan pertama dan ${v//lama/baru} untuk semua kemunculan. ${v:awal:panjang} mengambil potongan, misalnya ${t:0:4} untuk tahun dari 2026-09-22. Nilai bawaan ditulis ${v:-isi}, yang memakai isi bila v kosong tanpa mengubah v; ${v:=isi} sekaligus menyimpannya ke v.
for f in foto/*.jpeg; do
mv "$f" "${f%.jpeg}.jpg"
done
TUJUAN=${1:-cadangan}Cara mengingat arah: di papan ketik, # ada di kiri $ dan % di kanannya, jadi # memotong dari depan dan % dari belakang. Kesalahan umum: memakai %% padahal yang dimaksud %, sehingga nama berkas bertitik seperti penjualan.2026.csv kehilangan lebih banyak dari yang diinginkan.