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:]]
------解决方案--------------------
《鸟哥私房菜》
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:]]
------解决方案--------------------
《鸟哥私房菜》