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

More Bash tasks

Back to the full Bash Scripting cheat sheet