当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 3 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 今天碰到一个问题特别奇怪!
帖子发表于 : 2007-11-02 10:47 

注册: 2007-11-02 10:40
帖子: 1
送出感谢: 0 次
接收感谢: 0 次
今天编了一个shell:
#
#把参数带入的字符划分类型
#
if [ "$#" -ne 1 ]
then
echo "用法: ctype 字符"
exit 1
fi

#
#请确保只键入一个字符
#

char="$1"
numchars=$(echo "$char" | wc -c)

if [ "$numchars" -ne 2 ]
then
echo "请键入一个字符"
exit 1
fi

#
#现在给它分类
#

case "$char" in
[0-9]) echo 数字;;
[a-z]) echo 小写字母;;
[A-Z]) echo 大写字母;;
*) echo 特殊字符;;
esac
root@tanrui-desktop:/bin# sh -x ctype A
#检测结果:
+ [ 1 -ne 1 ]
+ char=A
+ echo A
+ wc -c
+ numchars=2
+ [ 2 -ne 2 ]
+ echo 大写字母
大写字母
root@tanrui-desktop:/bin# ctype A
小写字母
真的很奇怪!
我检测脚本明明输入A显示结果是大写字母,但是当我对A运行脚本时,结果却是小写字母!!
而且同样参数为B时结果也一样。
但是当参数为C-Z时,结果就是大写字母了。难道系统对A和B不识别?
希望高手们多多指教,小弟多谢!!


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-11-02 10:58 
头像

注册: 2006-04-12 20:05
帖子: 8495
地址: 杭州
送出感谢: 0 次
接收感谢: 8
ABS Guide 写道:
1 #!/bin/bash
2 # 测试字符串范围.
3
4 echo; echo "Hit a key, then hit return."
5 read Keypress
6
7 case "$Keypress" in
8 [[:lower:]] ) echo "Lowercase letter";;
9 [[:upper:]] ) echo "Uppercase letter";;
10 [0-9] ) echo "Digit";;
11 * ) echo "Punctuation, whitespace, or other";;
12 esac # 允许字符串的范围出现在[中括号]中,
13 #+ 或者出现在POSIX风格的[[双中括号中.
14
15 # 在这个例子的第一个版本中,
16 #+ 测试大写和小写字符串的工作使用的是
17 #+ [a-z] 和 [A-Z].
18 # 这种用法在某些特定场合的或某些Linux发行版中不能够正常工作.
19 # POSIX 的风格更具可移植性.


_________________
关注我的blog: ε==3


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-11-02 11:06 
头像

注册: 2007-01-15 17:15
帖子: 3766
送出感谢: 0 次
接收感谢: 0 次
前边+上 LANG=C try1try ...


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 3 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译