[Comm] Неправильная сортировка в консоли?

Sergey Stepanov =?iso-8859-1?q?dlagovna_=CE=C1_mail=2Eru?=
Пт Окт 13 03:05:53 MSD 2006


> А теперь сравните с таким ответом:
> 
> $ locale |grep LC_COLLATE
> LC_COLLATE="ru_RU.KOI8-R"
> $ LC_COLLATE=C
> $ locale |grep LC_COLLATE
> LC_COLLATE="ru_RU.KOI8-R"
> $ export LC_COLLATE
> $ locale |grep LC_COLLATE
> LC_COLLATE=C
> 
> На причины происходящего, кстати, в этой ветке было указано.

Ага. Непонятно другое.

1. Программы типа sort и ls не пользуются механизмом locale, 
а берут данные из системной переменной LC_COLLATE? Пример.

# locale |grep LC_COLLATE
LC_COLLATE="ru_RU.KOI8-R"

# ls -1
bet_eng.png
bet_esp.png
betperline_eng.png
betperline_esp.png
betperline_por.png
bet_por.png

# LC_COLLATE=C
# set | grep LC_COLLATE
LC_COLLATE=C
# locale |grep LC_COLLATE
LC_COLLATE="ru_RU.KOI8-R"

# ls -1
bet_eng.png
bet_esp.png
bet_por.png
betperline_eng.png
betperline_esp.png
betperline_por.png


2. Насколько я понял, locale выставляет свои переменные
согласно значению LC_ALL. Существуют какие-то таблицы,
которые по значению LC_ALL выставляют все переменные
locale в нужные значения. Вопрос. Почему разрешен
экспорт системных переменных в пространство locale?
Ведь таким образом нарушается сама идея локализации
через locale. Почему бы в таком случае не пользоваться 
просто системными LC-переменными???


Со всяческими пожеланиями, Сергей.
http://xi.net.ru




Подробная информация о списке рассылки community