Доступен командный интерпретатор Bash 5.2

После двадцати месяцев разработки опубликована новая версия командного интерпретатора 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», запрещающая возвращение ».» и »…» при раскрытии путей.



Источник: http://www.opennet.ru/opennews/art.shtml? num=57835

© OpenNet