LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1690|回复: 29

因为对手册理解有误,所以曾经认为“手册似乎有bug”,现在我不认为“手册有bug” [已解

[复制链接]
发表于 2008-11-21 22:16:12 | 显示全部楼层 |阅读模式

  1. shuge locale # export LANG=en_US.UTF-8
  2. shuge locale # env-update && source /etc/profile
  3. >>> Regenerating /etc/ld.so.cache...
  4. shuge locale # date
  5. 2008年 11月 21日 星期五 21:45:02 CST
复制代码


LANG           Defines all locale settings at once, while allowing further individual customization via the LC_* settings below.
LC_COLLATE         Define alphabetical ordering of strings. This affects e.g. output of sorted directory listing.
...
http://www.gentoo.org/doc/en/guide-localization.xml

我的理解, LANG 优先低于其它 LC_* ,设置了 LANG (并且不再设置 LC_* )会覆盖其它的 LC_* ,但是结果是让我吃惊。难道非得重启 KDE 才生效?
发表于 2008-11-21 23:43:40 | 显示全部楼层
优先级低怎么会覆盖其他设定
你挺搞笑的啊
回复 支持 反对

使用道具 举报

发表于 2008-11-22 00:53:06 | 显示全部楼层
shuge locale # export LANG=en_US.UTF-8
shuge locale # env-update && source /etc/profile
>>> Regenerating /etc/ld.so.cache...
shuge locale # date
2008年 11月 21日 星期五 21:45:02 CST

三条不同的命令,越看越糊涂,这是要证明啥呢?
locale好像还真是有点问题,或许是我设置的不对,每次更新了locale.gen,重新
env-update && source /etc/profile 后,不更新profile.env
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-22 10:13:04 | 显示全部楼层
Post by zhllg;1911838
优先级低怎么会覆盖其他设定
你挺搞笑的啊

有啥好搞笑。您自己看:
those with highest precedence (i.e. those that override settings below them) are at the top of the table. All variables take one name of a locale in ab_CD format given above.
http://www.gentoo.org/doc/en/guide-localization.xml
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-22 10:15:17 | 显示全部楼层
另,我昨晚又试了一下,更改 locale 后,确实要重新登陆 DM 才生效。

KDE 和 GNOME 处理 / 对待 locale 并不完全一样,烦……
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-22 10:18:51 | 显示全部楼层
Post by yuio654;1911861
shuge locale # export LANG=en_US.UTF-8
shuge locale # env-update && source /etc/profile
>>> Regenerating /etc/ld.so.cache...
shuge locale # date
2008年 11月 21日 星期五 21:45:02 CST

三条不同的命令,越看越糊涂,这是要证明啥呢?
locale好像还真是有点问题,或许是我设置的不对,每次更新了locale.gen,重新
env-update && source /etc/profile 后,不更新profile.env


我的意图是想证明
LANG 会影响输出信息的语言,本来执行完 export LANG=en_US.UTF-8 && env-update && source /etc/profile && date 后应该显示的是:

  1. Nov 21, 2008 ...
复制代码


明白了没有?

一般人根本不会理会 locale 的影响域或者具体作用,安装时就 CTRL+C CTRL + V  代码,完事就完了。当然不会明白我说什么。
回复 支持 反对

使用道具 举报

发表于 2008-11-22 10:48:07 | 显示全部楼层
@flyinflash,
很明显你是错的。。。,你想要得到Nov21,2008的话,只能export LC_ALL=en_US才行,
在有LC_*设置的情况下,相应的LANG的条目是不起作用的
回复 支持 反对

使用道具 举报

发表于 2008-11-22 11:14:00 | 显示全部楼层
手册里的那个表格是有些误导
LANG应该在最下面
LC_ALL应该在最上面

当年我为了搞清楚这个问题,我专门分析了glibc里这一块相关的代码
http://www.linuxsir.cn/bbs/showthread.php?t=237877
回复 支持 反对

使用道具 举报

发表于 2008-11-22 11:34:06 | 显示全部楼层
Post by flyinflash;1911940
我的意图是想证明
LANG 会影响输出信息的语言,本来执行完 export LANG=en_US.UTF-8 && env-update && source /etc/profile && date 后应该显示的是:

  1. Nov 21, 2008 ...
复制代码


明白了没有?

一般人根本不会理会 locale 的影响域或者具体作用,安装时就 CTRL+C CTRL + V  代码,完事就完了。当然不会明白我说什么。


你export后修改的会话级别的lang
env-update后应该变成系统默认的
你应该在没有export前先date或者先执行locale -a查看一下
回复 支持 反对

使用道具 举报

发表于 2008-11-22 12:06:34 | 显示全部楼层
Post by flyinflash;1911786
  1. shuge locale # export LANG=en_US.UTF-8
  2. shuge locale # env-update && source /etc/profile
  3. >>> Regenerating /etc/ld.so.cache...
  4. shuge locale # date
  5. 2008年 11月 21日 星期五 21:45:02 CST
复制代码
LANG       Defines all locale settings at once, while allowing further individual customization via the LC_* settings below.
LC_COLLATE     Define alphabetical ordering of strings. This affects e.g. output of sorted directory listing.
...
http://www.gentoo.org/doc/en/guide-localization.xml

我的理解, LANG 优先低于其它 LC_* ,设置了 LANG (并且不再设置 LC_* )会覆盖其它的 LC_* ,但是结果是让我吃惊。难道非得重启 KDE 才生效?

你的做法有严重的问题,请先搞清楚 env-update 和 source /etc/profile 是干啥的才来提问。
man 先看完,再去找别人的毛病,可以吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表