bash中有没有将字符串转换为小写字符串的方法?

例如,如果我有:

a="Hi all"

我想将其转换为:

"hi all"

当前回答

对于Bash 3.2.+| Mac:

read -p 'What is your email? ' email
email=$(echo $email | tr '[:upper:]' '[:lower:]')
email="$email"
echo $email

其他回答

使用此命令执行同样的操作,它会将大写字符串转换为小写:

sed 's/[A-Z]/[a-z]/g' <filename>

tr:

a="$(tr [A-Z] [a-z] <<< "$a")"

AWK:

{ print tolower($0) }

sed:

y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/

在zsh中:

echo $a:u

我爱你!

echo "Hi All" | tr "[:upper:]" "[:lower:]"

在bash 4中,可以使用类型集

例子:

A="HELLO WORLD"
typeset -l A=$A