Новая версия командного интерпретатора GNU Bash 5.1 уже в строю

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!


Сегодня стало известно о выходе новой версии командного интерпретатора GNU Bash 5.1. На ее разработку ушло целых два года. Кроме того, есть и еще новость — сформирован релиз библиотеки readline 8.1, которая применяется в bash для организации редактирования командной строки.

О том, что появилось нового и полезного — под катом.

  • Полностью переработан движок генерации псевдослучайных чисел. Теперь добавлена переменная SRANDOM, которая содержит случайное 32-разрядное число из системного генератора псевдослучайных чисел. Вместо LCRNG использованы вызовы getrandom/getentropy, /dev/urandom или arc4random. Ну а последовательность, которая выдается, не является линейной, так что она не повторяется при идентичном следовании запросов.
  • Кроме того, добавлена переменная PROMPT_COMMANDS. Она введена для запуска нескольких команд перед выводом приглашения командной строки.
  • В Readline включили режим выделенной вставки (bracketed-paste), при котором извлекаемые из буфера обмена данные обрамляются escape-последовательностями ("\e[200~" и "\e[201~") для визуального выделения поступивших из буфера обмена данных. Теперь здесь есть подсветка подобных вставок, плюс подсветка текста, который найден при инкрементальном и неинкрементальном поиске в истории.
  • Для ассоциативных массивов добавлена поддержка составных присвоений. В них передается набор из пар в формате ключ/значение ("[key]=value"). Плюс ко всему, разработчики реализовали динамическое увеличение размера хэш-таблицы в зависимости от типа данных, которые добавляются в ассоциативный массив.
  • Еще стоит выделить факт добавления новых параметров операторов преобразования. Так, «U», «u» и «L» используются для преобразования в верхний регистр всей строки, преобразования в верхний регистр первого символа и преобразования в нижний регистр, а параметр «K» — для отображения ассоциативного массива в формате ключ/значение.
  • Чтобы активировать режим совместимости с прошлыми версиями, нужно использовать переменную BASH_COMPAT. Compat50 для включения режима совместимости с версией 5.0 не получится.
  • Разработчики решили вернуть старое поведение, которое связано с раскрытием файлового пути при указании слов, включающих обратные слэши, но без использования спецсимволов раскрытия маски. Поведение унаследовано из версии 4.4. В «пятерке» был введен стандарт POSIX, но пользователи негативно отнеслись к этому нововведению.
  • В том же POSIX-режиме добавлена возможность замещения процесса, в ходе которого ввод и вывод команды обрабатывается другими командами как файл. В качестве примера можно привести «diff <(sort file1) <(sort file2)».
  • Появились новые загружаемые команды asort, mktemp, accept, mkfifo, csv и cut/lcut.
  • А еще в команду wait добавили опцию "-p имя переменной". Она нужна для сохранения в переменной информации о PID процесса, который возвращен при выполнении «wait -n» или вызова wait без аргументов.
  • Команда rl-clear-display используется для очистки содержимого экрана и буфера прокрутки.
  • Модифицирован способ обработки исключений при чтении данных с терминала при помощи read и select. Последняя команда запускает trap-обработчики в случа прерывания сигналом внутреннего вызова команды read. Плюс разрешен рекурсивный запуск обработчиков SIGINT.
  • Команда shell-transpose-words, появившаяся в readline, использует то же определение слов, что и в shell-forward-word. По дефолту используются клавиатурные привязки для команд shell-forward-word, shell-backward-word, shell-transpose-words и shell-kill-word.
  • Новый оператор «test-N» определяет время с наносекундной точностью.
  • Разрешена запись в переменную BASH_REMATCH.
  • В ulimit появилась команда "-R" для просмотра и установки ресурса RLIMIT_RTTIME.
  • В случае выхода из командной оболочки bash закрывает все FIFO-каналы, вне зависимости от завершения связанных процессов.


С полным списком изменений можно ознакомиться вот здесь.

Источник: https://habr.com/ru/company/selectel/blog/532002/


Интересные статьи

Интересные статьи

Этот год трансформировал многие процессы, изменились традиции, привычки. Поменялся ритм, появилась дополнительная неопределенность и напряженность. Но душа IT-специалиста требует разн...
Маркетплейс – это сервис от 1С-Битрикс, который позволяет разработчикам делиться своими решениями с широкой аудиторией, состоящей из клиентов и других разработчиков.
В МГТУ будет создана новая кафедра «Биотехнические системы и технологии» под руководством доктора медицинских наук и главного специалиста по репродуктивному здоровью Министерства Здравоох...
VUE.JS - это javascript фрэймворк, с версии 18.5 его добавили в ядро битрикса, поэтому можно его использовать из коробки.
Кому предназначена данная статья Данная статья может быть интересна системным администраторам, перед которыми вставала задача создать сервис «одноразовых» рабочих мест. Пролог В отдел ИТ со...