在shell脚本中将小写转换为大写

时间:2014-02-13 06:16:11

标签: shell

我尝试将小写字符串转换为大写字母,并使用以下代码将其分配给变量

该脚本以.tn扩展名编写

set y a12
y_up=$( tr '[A-Z]' '[a-z]' <<< $y)
echo $y
echo $y_up

但我收到了错误

invalid command name "A-Z"
while executing
"A-Z"
invoked from within
"y_up=$( tr '[A-Z]' '[a-z]' <<< $y) "

我该怎么转换呢?

4 个答案:

答案 0 :(得分:4)

在Works下面,试试这个。

bash-3.2$echo lower to upper | tr '[:lower:]' '[:upper:]'
LOWER TO UPPER  

# To Save in the variable use below
var=$(echo lower to upper | tr '[:lower:]' '[:upper:]')

答案 1 :(得分:1)

这应该有效:

$ y="Foo Bar Baz"
$ y_up=$(tr '[A-Z]' '[a-z]' <<< $y)
$ echo $y_up
foo bar baz

答案 2 :(得分:0)

BASH 4+版本具有将字符串转换为大写的本地方式:

upperStr="${str^^}"

答案 3 :(得分:0)

如@anubhava所述,如果有人希望使用本机方式将字符串转换为小写

$ str="BASH"
$ echo ${str,,}
bash