linux修改locale.conf不生效问题

之所以要修改,是因为系统默认为英文,而我使用脚本安装软件,发现中文的提示全是框框乱码。
在华为工程师的帮助下,费了一天的时间,排查出问题所在。原来是因为位于/etc/profile.d/目录下的这个lang.sh优先度高于locale.conf,一旦系统重启,加载的lang.sh就把locale.conf的设置给覆盖掉了。
导致locale.conf的修改无效。
解决方案是修改lang.sh中的代码。(下图为修改之后的情况)
linux修改locale.conf不生效问题_第1张图片

可以看到我划线部分改成的LANG=zh_CN.UTF-8
而它默认是LANG=en_US.UTF-8。
这里的case in,表示当case后面的变量LANG 为zh*(注:是通配符,所以zh表示以zh打头的变量,在当前情况下指的就是zh_CN.UTF-8)的时候,就把该变量 替换成en_US.UTF-8。而这一操作优先于locale.conf,所以要解决问题,只需要把en_US.UTF-8替换为zh_CN.UTF-8就行了。
接着保存,重启。搞定!

你可能感兴趣的:(笔记)