Hand-written parser and expander for Bash variable expansions.
Handles all forms of parameter expansion:
- Simple:
$VAR - Braced:
${VAR} - Default values:
${VAR:-default},${VAR:=default},${VAR:?error},${VAR:+alternate} - Pattern removal:
${VAR#pattern},${VAR##pattern},${VAR%pattern},${VAR%%pattern} - Substitution:
${VAR/pattern/replacement},${VAR//pattern/replacement} - Substring:
${VAR:offset},${VAR:offset:length} - Length:
${#VAR}
References:
Summary
Functions
Parse a string into a list of tokens for variable expansion.