下面是一个很简单的程序,但是用sh和bash执行得出的结果不同:
先不指明解析器
在终端里运行
sh shiyan.sh 和 bash shiyan.sh 分别对 大写字母A 进行判断
用sh解析可以正确判断出是大写字母,但是用bash解析就会认为A是小写字母,为什么啊?
sh和bash的问题
-
- 帖子: 9
- 注册时间: 2012-02-09 18:54
-
- 帖子: 17
- 注册时间: 2011-08-19 10:32
Re: sh和bash的问题
[A-Z]改为[[:upper:]]
[a-z]改为[[:lower:]]
[a-z]改为[[:lower:]]
-
- 帖子: 9
- 注册时间: 2012-02-09 18:54
Re: sh和bash的问题
改了之后确实可以,我是看国嵌视频教程的,是按他上面做的。hmk913 写了:[A-Z]改为[[:upper:]]
[a-z]改为[[:lower:]]
sh和bash有什么区别呢?
-
- 帖子: 17
- 注册时间: 2011-08-19 10:32
Re: sh和bash的问题
貌似是语系环境不同,导致编码顺序不同。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],最好前面加上 :
代码: 全选
export LC_ALL=C
-
- 帖子: 9
- 注册时间: 2012-02-09 18:54
Re: sh和bash的问题
非常感谢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],最好前面加上 :代码: 全选
export LC_ALL=C
- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: sh和bash的问题
你这样中文还能正确打出来吗?还是用 en_US.UTF-8 比较好吧。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],最好前面加上 :代码: 全选
export LC_ALL=C
- Think1st
- 帖子: 45
- 注册时间: 2012-02-07 23:08