分页: 1 / 1
sh和bash的问题
发表于 : 2012-02-17 14:56
由 nismill512
下面是一个很简单的程序,但是用sh和bash执行得出的结果不同:
先不指明解析器

- 代码.png (15.41 KiB) 查看 1590 次
在终端里运行
sh shiyan.sh 和 bash shiyan.sh 分别对 大写字母A 进行判断
用sh解析可以正确判断出是大写字母,但是用bash解析就会认为A是小写字母,为什么啊?
Re: sh和bash的问题
发表于 : 2012-02-17 16:53
由 hmk913
[A-Z]改为[[:upper:]]
[a-z]改为[[:lower:]]
Re: sh和bash的问题
发表于 : 2012-02-17 19:31
由 nismill512
hmk913 写了:[A-Z]改为[[:upper:]]
[a-z]改为[[:lower:]]
改了之后确实可以,我是看国嵌视频教程的,是按他上面做的。
sh和bash有什么区别呢?
Re: sh和bash的问题
发表于 : 2012-02-17 21:56
由 hmk913
nismill512 写了:hmk913 写了:[A-Z]改为[[:upper:]]
[a-z]改为[[:lower:]]
改了之后确实可以,我是看国嵌视频教程的,是按他上面做的。
sh和bash有什么区别呢?
貌似是语系环境不同,导致编码顺序不同。
LANG=C:ABC...Zabc...z
LANG=zh_CN: aAbBcC...zZ
当语系为zh_CN,[a-z] 就会包括ABC..Y
如果要用[a-z],最好前面加上 :
Re: sh和bash的问题
发表于 : 2012-02-18 10:29
由 nismill512
hmk913 写了:nismill512 写了:hmk913 写了:[A-Z]改为[[:upper:]]
[a-z]改为[[:lower:]]
改了之后确实可以,我是看国嵌视频教程的,是按他上面做的。
sh和bash有什么区别呢?
貌似是语系环境不同,导致编码顺序不同。
LANG=C:ABC...Zabc...z
LANG=zh_CN: aAbBcC...zZ
当语系为zh_CN,[a-z] 就会包括ABC..Y
如果要用[a-z],最好前面加上 :
非常感谢
Re: sh和bash的问题
发表于 : 2012-02-18 23:01
由 lilydjwg
hmk913 写了:nismill512 写了:hmk913 写了:[A-Z]改为[[:upper:]]
[a-z]改为[[:lower:]]
改了之后确实可以,我是看国嵌视频教程的,是按他上面做的。
sh和bash有什么区别呢?
貌似是语系环境不同,导致编码顺序不同。
LANG=C:ABC...Zabc...z
LANG=zh_CN: aAbBcC...zZ
当语系为zh_CN,[a-z] 就会包括ABC..Y
如果要用[a-z],最好前面加上 :
你这样中文还能正确打出来吗?还是用 en_US.UTF-8 比较好吧。
Re: sh和bash的问题
发表于 : 2012-02-20 11:37
由 Think1st
牛人一大坨~~这都想到了。