我参考了GNU的官方文件中对于Locale Environment Variables章节的描述。
其中有提到 LC_ALL 的优先层级最高,因此设定该变数应该会覆盖其他如LANGUAGE、LANG 等的设定。
但是当我使用 export LC_ALL='C.UTF8'
命令后,再使用 locale
后却看到LANG变数仍保留原来的资料。
如下:
$ locale
LANG=en_US.UTF-8
LC_CTYPE="C.UTF-8"
LC_NUMERIC="C.UTF-8"
LC_TIME="C.UTF-8"
LC_COLLATE="C.UTF-8"
LC_MONETARY="C.UTF-8"
LC_MESSAGES="C.UTF-8"
LC_PAPER="C.UTF-8"
LC_NAME="C.UTF-8"
LC_ADDRESS="C.UTF-8"
LC_TELEPHONE="C.UTF-8"
LC_MEASUREMENT="C.UTF-8"
LC_IDENTIFICATION="C.UTF-8"
LC_ALL=C.UTF-8
使用localectl命令也是得到未更新的结果,如下:
localectl
System Locale: LANG=en_US.UTF-8
请问 LC_ALL 这个环境变数的优先层级是否真的是最高?
谢谢