[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