Bashで変数を大文字小文字変換する

Bash 4以降から大文字小文字を変換する拡張変数展開ができるようになった

記述  説明         例
${v^} 大文字化(1文字目のみ)  v="ho ge"; echo ${v^}→Ho ge
${v^^} 大文字化(全文字)    v="ho ge"; echo ${v^^}→HO GE
${v,} 小文字化(1文字目のみ)  v="HO GE"; echo ${v,}→hO GE
${v,,} 小文字化(全文字)    v="HO GE"; echo ${v,,}→ho ge
${v~} 大小反転(1文字目のみ※) v="ho GE"; echo ${v~}→Ho gE
${v~~} 大小反転(全文字)    v="ho GE"; echo ${v~}→HO GE


それより古いBashの場合は下記のようにする
$ tr '[a-z]' '[A-Z]' <<