如何将一个变量里面的大写字母转换为小写字母?

如何将一个变量里面的大写字母转换为小写字母?

方法一:
[QUOTE]
AA=dzZZZZ
AA=`echo $AA|tr "A-Z" "a-z"`
echo $AA # $AA now eq dzzzzz
[/QUOTE]有没有一个不用echo,sed,awk的方法:confused:      
bash 好像没有 built-in 的的 command 可以做大小写转换, 不过可以自己写一个       
上面的方法一就是自己写的,不过我想找个更好的方法      
用 tr sed 有什么不好的吗      
没有,就是想找个不通过echo 的方法,echo 在这里觉得有点别扭      
自己写了一个 built-in:
复制内容到剪贴板
代码:
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[24927 0] #[/color] type strlower
strlower is a shell builtin
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[24927 0] #[/color] help strlower
strlower: strlower string
    Convert string to lower case
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[24927 0] #[/color] strlower "HELLO, WORLD"
hello, world
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[24927 0] #[/color] o
      
不知道编,能不能说说过程?
另外,编写builtin似乎不是个好办法      
bash 的源码包中有个目录 examples/loadables, 里面有好多自定义 built-in command 的例子, 不过确实不是一个好的办法, 最好的方法是建议 bash 的 maintainer 把这些常用的 feature 加进去       
我还没看过,去看看      
复制内容到剪贴板
代码:
[0 No.2059 huan@huan ~]$ function tolow { [[ -n $1 ]] && echo $1 | perl -pe ' $_ = lc '; }

[0 No.2060 huan@huan ~]$ tolow ABC
abc

[0 No.2061 huan@huan ~]$
如果自己用
写成function 是不是比写成 builtin 简单
写到~/.bashrc里就成了