100回ぐらいググってる気がするやつ。覚える気すらない模様。
$ man bash | grep "^\s*\${.*}$" | tr -d " " ${parameter} ${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} ${parameter^^pattern} ${parameter,pattern} ${parameter,,pattern} ${parameter}: 参照 ${parameter:-word}: デフォルト値(代入なし) ${parameter:=word}: デフォルト値(代入あり) ${parameter-word}: 変数未定義時デフォルト値(代入なし) ${parameter=word}: 変数未定義時デフォルト値(代入あり) ${parameter:?word}: 未定義時のエラー出力 ${parameter:+word}: 定義時の代用(代入あり) ${parameter+word}: 定義時の代用(代入なし) ${parameter:offset}: 部分展開(文字数指定なし) ${parameter:offset:length}: 部分展開(文字数指定あり) ${!prefix*}: 変数名一覧 ${!name[*]}: 連想配列キー名一覧 ${#parameter}: 文字数カウント ${parameter#word}: 前方一致除去(最短一致) ${parameter##word}: 前方一致除去(最長一致) ${parameter%word}: 後方一致除去(最短一致) ${parameter%%word}: 後方一致除去(最長一致) ${parameter/pattern/string}: 文字列置換 ${parameter//pattern/string}: 文字列置換