Por que as variáveis de localidade não aparecem na saída de env ou printenv?

3

O comando locale imprime uma lista de variáveis ambientais que contêm informações relacionadas à localidade dos usuários:

$locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

Por que não vejo essas variáveis quando executo printenv ou env ?

    
por mikewilliamson 02.12.2015 / 17:52

1 resposta

4

O comando locale não imprime variáveis de ambiente. Imprime o estado da localidade do usuário, seja por ambiente ou por inferência.

Por exemplo, se LC_TIME não estiver definido, seu valor será obtido de LANG . E se LC_ALL for definido, todas as outras configurações serão substituídas.

Experimente:

$ LANG=ja_JP.utf8 locale
LANG=ja_JP.utf8
LANGUAGE=en_GB:en
LC_CTYPE="ja_JP.utf8"
LC_NUMERIC="ja_JP.utf8"
LC_TIME="ja_JP.utf8"
LC_COLLATE="ja_JP.utf8"
LC_MONETARY="ja_JP.utf8"
LC_MESSAGES="ja_JP.utf8"
LC_PAPER="ja_JP.utf8"
LC_NAME="ja_JP.utf8"
LC_ADDRESS="ja_JP.utf8"
LC_TELEPHONE="ja_JP.utf8"
LC_MEASUREMENT="ja_JP.utf8"
LC_IDENTIFICATION="ja_JP.utf8"
LC_ALL=

$ LANG=ja_JP.utf8 LC_CTYPE=en_GB.UTF-8 locale
LANG=ja_JP.utf8
LANGUAGE=en_GB:en
LC_CTYPE=en_GB.UTF-8
LC_NUMERIC="ja_JP.utf8"
LC_TIME="ja_JP.utf8"
LC_COLLATE="ja_JP.utf8"
LC_MONETARY="ja_JP.utf8"
LC_MESSAGES="ja_JP.utf8"
LC_PAPER="ja_JP.utf8"
LC_NAME="ja_JP.utf8"
LC_ADDRESS="ja_JP.utf8"
LC_TELEPHONE="ja_JP.utf8"
LC_MEASUREMENT="ja_JP.utf8"
LC_IDENTIFICATION="ja_JP.utf8"
LC_ALL=

$ LANG=ja_JP.utf8 LC_CTYPE=en_GB.UTF-8 LC_ALL=POSIX locale
LANG=ja_JP.utf8
LANGUAGE=en_GB:en
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=POSIX

Você observará que os valores computados são mostrados entre aspas duplas e aqueles explicitamente definidos pelas variáveis de ambiente não são citados.

    
por 02.12.2015 / 19:58