1

Я пишу сценарий bash и хочу сделать его переносимым, чтобы иметь такие же результаты на других компьютерах.

Из этого вопроса я узнал, что системные настройки, такие как языковые настройки и, возможно, другие переменные, могут влиять на результаты одной и той же команды сортировки для точно такого же входного файла и аргументов.

Поэтому мой вопрос заключается в том, как использовать сортировку и обеспечить ожидаемый результат в других системах? Какие системные переменные мне следует учитывать? Помогает ли LC_ALL=C b решить все проблемы?

1 ответ1

1

Да, LC_ALL=C решит ваши проблемы с переносимостью (он будет работать на всех системах одинаково)

Обратите внимание, что это не обязательно означает, что он будет делать то, что вы хотите. "C" локаль будет сортировать по байтовому значению. Что хорошо, если все ваши данные являются чистыми ASCII. Однако, если ваши данные могут содержать некоторые другие наборы символов (например, другие языки в серии ISO-8859- *, KOI-R или небесах запрещают многобайтовые кодировки, такие как UTF-16, UTF-8 и т.д.), Они будут ужасно ломаться.

Но он все равно будет переносимым, так как он будет ужасно ломаться одинаково на всех платформах.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .