Defaults, Length & Substrings in Bash
From the Bash Scripting cheat sheet · Parameter Expansion · verified Jul 2026
Defaults, Length & Substrings
Fallbacks and slicing.
bash
# Quick Reference
${var:-default} # use default if unset/empty
${var:=default} # assign default if unset
${#var} # length
${var:0:3} # substring (offset, length)💡 ${var:-def} substitutes a default without changing var; ${var:=def} also assigns it.
⚡ ${#var} is the length; ${var:offset:length} slices a substring.
📌 ${var:?msg} aborts the script with msg if var is unset - a cheap required-arg guard.
🟢 ${var^^} / ${var,,} upper/lowercase the whole string (bash 4+), no tr needed.
parameter-expansiondefaults