Bash (Bourne Again SHell) — это проект GNU, полная реализация спецификации оболочки POSIX.
После почти 2 лет разработки (двадцать месяцев разработки, если быть точным) запуск новая версия оболочки GNU Баш 5.2, который является обновлением пятой ветки (5.x), и этот выпуск исправляет несколько заметных ошибок в bash-5.1 и вводит ряд новых функций.
Те из вас, кто плохо знаком с bash, должны знать, что это оболочка по умолчанию в большинстве дистрибутивов Linux.
Основные новые возможности Bash 5.2
В этой новой версии, представленной от Bash 5.2 отмечается, что велась работа по переписыванию кода для анализа конструкций подстановки команд и замена вывода при выполнении другой команды, такой как "$(command)" или `command`. Новая реализация вызывает синтаксический анализатор bison рекурсивно. Это заменяет специальный синтаксический анализ, использовавшийся в предыдущих версиях, и позволяет лучше проверять синтаксис и выявлять синтаксические ошибки намного раньше.
Еще одно изменение, которое выделяется в этой новой версии Bash 5.2, — это улучшен разбор и расширение индексов массива, плюс реализована возможность использовать параметры "@" и "*" во встроенной команде для сброса ключа на заданное значение вместо сброса всего массива.
В дополнение к этому упоминается также, что добавлена новая настройка «patsub_replacement», когда он установлен, символ '&' в заменяемой строке используется для замены части строки, которая соответствует заданному шаблону.
также подчеркивается, что существует новая структура для времени ожидания readline, который включает новые
общедоступные функции для установки тайм-аутов и просмотра того, сколько времени осталось до истечения времени ожидания, а также есть новый параметр конфигурации: --with-shared-termcap-library, который заставляет общую библиотеку readline связываться с общей библиотекой termcap (или curses /ncurses/termlib), поэтому приложениям это не нужно.
Из других изменений которые выделяются из этой новой версии Bash 5.2:
- Расширено количество ситуаций, когда дополнительные процессы не разветвляются, например, больше не используется разветвление при использовании конструкции "$("
- Реализована новая внутренняя структура для расчета таймера и времени ожидания.
- Предусмотрена возможность включения во время компиляции (configure --enable-alt-array-implementation) альтернативной реализации массива, оптимизированной для максимальной скорости доступа за счет увеличения потребления памяти.
- Расширенное использование замен $'…' и $»…», используемых в локализации.
- 'printf' имеет новый спецификатор формата '%Q'. Это действует как "%q", но применяет любую указанную точность к исходному аргументу без кавычек, затем заключает в кавычки и выводит результат.
- Добавлен параметр noexpand_translations и параметр сборки «configure --enable-translatable-strings», чтобы контролировать, включена ли поддержка локализуемых замен $"...".
- В режиме posix `printf' теперь можно использовать long double для спецификаторов преобразования с плавающей запятой, если они присутствуют, в противном случае он должен быть просто double.
- Добавлены и включены по умолчанию "globskipdots", чтобы избежать "." и ".." при расширении маршрутов..
В то же время была выпущена библиотека readline 8.2, которая используется в bash для организации редактирования командной строки.
Наконец, следует упомянуть, что эта версия bash может быть связана с библиотекой Readline уже установлен вместо приватной версии в lib/readline, если хотите. Важно лишь отметить, что версия readline-8.1 и более поздние версии могут предоставлять все символы, которые требуются bash-5.2, поэтому более ранние версии библиотеки Readline не будут работать правильно.
Наконец, для тех, кто хочет узнать немного больше, а также для тех, кто хочет получить эту новую версию сейчас, вы можете перейти по следующей ссылке.
Как получить Bash 5.2 для Linux?
Момент Осталось только дождаться включения этой новой версии Bash. в репозиториях дистрибутивов Linux, поскольку это лучший вариант.
Будьте первым, чтобы комментировать