shell的case语句中区分字母大小写有关问题

shell的case语句中区分字母大小写问题
read Key
case $Key in
  [a-z]) echo "Lowercase";;
  [A-Z]) echo "Uppercase";;
esac

在执行的时候,无论输入大写字母还是小写字母,都会输出Lowercase,也就是说将所有字母都识别为小写.
如果将脚本中两个语句顺序颠倒一下:除了小写字母'a'之外,都会输出Uppercase, 也就是说将小写a之外的字母都识别为大写

到底是因为什么?

------解决方案--------------------
在网上搜了一下,解决的方法有两种,
一种是在脚本最前面加入如下句:
export LC_ALL=C
另一种是将判断条件作如下改动:
[A-Z]改为[[:upper:]]
[a-z]改为[[:lower:]]
------解决方案--------------------

《鸟哥私房菜》