Locale

LANG=C 和 LC_ALL=C 有什麼區別?

  • April 22, 2022

我喜歡禁用 shell 腳本中所有特定於語言環境的差異。首選的方法是什麼?

LANG=C或者LC_ALL=C

LANG設置預設語言環境,在沒有提供更具體的設置( 、 等)時使用的LC_COLLATE語言LC_NUMERIC環境LC_TIME;它不會覆蓋任何設置,它提供基值。LC_ALL另一方面覆蓋所有區域設置。

因此,要覆蓋腳本的設置,您應該設置LC_ALL.

您可以通過執行來檢查設置的效果locale。它以引號顯示所有未明確設置的語言環境類別的計算值;在您的範例中,LANG不是覆蓋LC_NUMERIC,而是提供預設值。如果LC_ALLLC_NUMERIC未在環境中設置,則語言環境取自LANG,並locale顯示 的值LC_NUMERIC,如引號所示。

有關詳細資訊,locales請參閱聯機幫助頁環境變數的 POSIX 定義。另請參閱“區域設置”程序如何工作?

引用自:https://unix.stackexchange.com/questions/576701