You can see that all LC_* formats have been successfully changed to POSIX, but LANG still remains en_US.UTF-8.
But according to The Single UNIX ® Specification, the priority level of LC_ALL should be higher than LANG. Why is the value of LANG not changed after modifying LC_ALL? Do I need to execute export LANG=POSIX again?
If the second argument to setlocale(3) is an empty string, "", for the
default locale, it is determined using the following steps:
(1) If there is a non-null environment variable LC_ALL, the value of
LC_ALL is used.
(2) If an environment variable with the same name as one of the cate‐
gories above exists and is non-null, its value is used for that
category.
(3) If there is a non-null environment variable LANG, the value of
LANG is used.
But when I try to add LC_ALL=de_DE.UTF-8 to the .bash_profile file and log in again, I will receive the following prompt. It seems that the language setting has indeed been changed to German
But when I enter the locale command in the shell, I can still find LANG=en_US .UTF-8
It seems that no matter what language system LC_ALL is changed to, the value of LANG will still not be changed.