Parameter expansion

Simple usage

  • $PARAMETER

  • ${PARAMETER}

Indirection

  • ${!PARAMETER}

Case modification

  • ${PARAMETER^}

  • ${PARAMETER^^}

  • ${PARAMETER,}

  • ${PARAMETER,,}

  • ${PARAMETER~}

  • ${PARAMETER~~}

Variable name expansion

  • ${!PREFIX*}

  • ${!PREFIX@}

Substring removal (also for filename manipulation!)

  • ${PARAMETER#PATTERN}

  • ${PARAMETER##PATTERN}

  • ${PARAMETER%PATTERN}

  • ${PARAMETER%%PATTERN}

Search and replace

  • ${PARAMETER/PATTERN/STRING}

  • ${PARAMETER//PATTERN/STRING}

  • ${PARAMETER/PATTERN}

  • ${PARAMETER//PATTERN}

String length

  • ${#PARAMETER}

Substring expansion

  • ${PARAMETER:OFFSET}

  • ${PARAMETER:OFFSET:LENGTH}

Use a default value

  • ${PARAMETER:-WORD}

  • ${PARAMETER-WORD}

Assign a default value

  • ${PARAMETER:=WORD}

  • ${PARAMETER=WORD}

Use an alternate value

  • ${PARAMETER:+WORD}

  • ${PARAMETER+WORD}

Display error if null or unset

  • ${PARAMETER:?WORD}

  • ${PARAMETER?WORD}