In Bash, the $ character can be used to introduce parameter expansion.
Here's a brief list of such parameter expansions:
${parameter:-word}${parameter:=word}${parameter:?word}${parameter:+word}${parameter:offset}${parameter:offset:length}${!prefix*}${!prefix@}${!name[@]}${!name[*]}${#parameter}${parameter#word}${parameter##word}${parameter%word}${parameter%%word}${parameter/pattern/string}${parameter//pattern/string}${parameter/#pattern/string}${parameter/%pattern/string}${parameterˆpattern}${parameterˆˆpattern}${parameter,pattern}${parameter,,pattern}${parameter@operator}U: all uppercaseu: first character uppercaseL: all lowercaseQ: quoted for inputE: expand backslash sequencesP: prompt stringA: assignment statementK: quoted key-value pairsa: parameter's attributesk: like K, but keys and values are separate wordsSee man bash for more information.