Environment-Variables
如何更改語言環境變數?
我已經生成了 en_US.utf8、et_EE.iso88591和ru_RU.utf8本地化文件。現在,如果我嘗試將任何語言環境變數更改為ru_RU.utf8或en_US.utf8,那麼這不會產生任何影響:
# locale -a C en_US.utf8 et_EE et_EE.iso88591 POSIX ru_RU.utf8 # LC_TIME=ru_RU.utf8 # locale | grep LC_TIME LC_TIME="et_EE.iso88591" # LC_TIME="ru_RU.utf8" # locale | grep LC_TIME LC_TIME="et_EE.iso88591" #
但是,如果我更改LANG=變數,那麼除LANGUAGE=和LC_ALL=之外的所有其他變數都將採用LANG=變數的值。有沒有辦法單獨修改每個語言環境變數?此外,我是否更正了語言環境變數不是正常的 shell 變數,而更像是語言環境實用程序的參數?
您可以獨立設置任何區域設置類別。
LANG
僅適用於未明確設置的類別。
LANG
並且LC_xxx
是普通的環境變數。它們不是locale
實用程序的設置:該locale
程序不參與任何區域設置處理,它只是一個報告目前和可用區域設置的小實用程序。當您編寫 時
LC_TIME=ru_RU.utf8
,這不會設置環境變數,僅設置 shell 變數。Shell 變數是 shell 內部的,其他程序看不到它們。另一方面,環境變數由 shell 啟動的程序繼承。您還需要將變數導出到環境中:$ LC_TIME=ru_RU.utf8 $ locale | grep LC_TIME LC_TIME="et_EE.iso88591" $ export LC_TIME $ locale | grep LC_TIME LC_TIME="ru_RU.utf8"
或直接
$ export LC_TIME=ru_RU.utf8 $ locale | grep LC_TIME LC_TIME="ru_RU.utf8"