Дата публикации:Tue, 27 Sep 2022 08:51:48 +0300
После двадцати месяцев разработки опубликована новая версия командного интерпретатора GNU Bash 5.2, используемого по умолчанию в большинстве дистрибутивов Linux. Одновременно сформирован релиз библиотеки readline 8.2, применяемой в bash для организации редактирования командной строки.
Из ключевых улучшений можно отметить:
- Переписан код для разбора конструкций замещения команд (command substitution, подстановка вывода от выполнения другой команды, напирмер, "$(command)" или `command`). Новая реализация использует рекурсивный вызов парсера bison и отличается более качественной проверкой синтаксиса и ранним выявлением ошибок в замещаемых конструкциях.
Улучшен разбор и раскрытие индексов массивов. Реализована возможность использования параметров "@" и "*" во встроенной команде unset для сброса ключа с заданным значением вместо сброса всего массива.
Добавлена новая настройка "patsub_replacement", при установке которой символ "&" в заменяемой строке используется для подстановки части строки, соответствующей заданному шаблону. Для вставки литерала "&" необходимо его экранирование обратным слэшем.
Расширено число ситуаций, при которых не выполняется ответвление дополнительных процессов, например, fork теперь не применяется при использовании конструкции "$(<file)".
Реализован новый внутренний фреймворк для таймера и расчёта таймаутов.
Предоставлена возможность включения на этапе сборки (сonfigure
--enable-alt-array-implementation) альтернативной реализации массивов, которая оптимизирована для достижения максимальной скорости доступа ценой повышения потребления памяти.
Расширено использование подстановок $'...' и $"...", применяемых при локализации. Добавлены настройка noexpand_translations и сборочная опция "configure --enable-translatable-strings", управляющие включением поддержки локализуемых подстановок $"...".
Добавлена и включена по умолчанию настройка "globskipdots", запрещающая возвращение "." и ".." при раскрытии путей.
Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=57835