Changing letter case

Basic types / Strings

strV="Lower And Upper"

#,, makes every letter lower, ^^ makes every letter upper
lower=${strV,,}
#lower is "lower and upper"

upper=${strV^^}
#upper is "LOWER AND UPPER"

#a single ^ changes only the first letter
capitalize=${lower^}
#capitalize is "Lower and upper"

#tr swaps the letters one for one (only the ASCII ones)
swapCase=$(tr 'a-zA-Z' 'A-Za-z' <<< "$strV")
#swapCase is "lOWER aND uPPER"

#bash knows the letters of the locale, not only ASCII
word="café"
wordUpper=${word^^}
#wordUpper is "CAFÉ"

echo "lower is $lower"
echo "upper is $upper"
echo "capitalize is $capitalize"
echo "swapCase is $swapCase"
echo "wordUpper is $wordUpper"