Релиз командной оболочки Bash 5.3
После почти трёх лет разработки опубликована новая версия командного интерпретатора GNU Bash 5.3, используемого по умолчанию в большинстве дистрибутивов Linux. Одновременно сформирован релиз библиотеки readline 8.3, применяемой в bash для организации редактирования командной строки.
Из ключевых улучшений можно отметить:
Реализованы новые формы подстановки команд »${ command; }» и »${|command;}», позволяющие перехватить вывод команды без ответвления отдельного дочернего процесса и без использования неименованных каналов. Результаты выполнения команды отдаются как результат подстановки или записываются в переменную REPLY.
Добавлена новая переменная GLOBSORT, определяющая способ сортировки при дополнении файлового пути. Например, можно выбрать сортировку по имени (GLOBSORT=name), размеру (GLOBSORT=size) или времени изменения (GLOBSORT=mtime), а также определить прямой (от меньшего к большему) или обратный (от большего к меньшему) порядок сортировки (например, при «GLOBSORT=-size» вначале будут показаны самые большие файлы).
Во встроенную команду «compgen» добавлена опция »-V varname» для сохранения сгенерированных дополнений в переменную, вместо вывода в стандартный поток.
Во встроенную команду «read» добавлена опция »-E», при вводе данных задействующая библиотеку readline с правилами автодополнения конструкций bash.
Во встроенную команду «source» добавлена опция »-p PATH», позволяющая переопределить список поиска в файловых путях (указанное значение используется вместо переменной $PATH).
Исходный код переведён на использование стандарта C23. Прекращена возможность сборки компиляторами в режиме «K&R C» (стиль, соответствующий описанию языка Си в книге «The C Programming Language» Кернигана и Ритчи).
Во встроенной команде «umask» обеспечена полная совместимость со спецификациями POSIX.
Добавлена загружаемая команда «kv», формирующая ассоциативный массив на основе набора данных в формате «ключ значение».
Добавлена загружаемая команда «strptime», преобразующая текстовое представление даты и времени в эпохальное время (число секунд с 1 января 1970 года).
Добавлена загружаемая команда «fltexpr», позволяющая выполнять арифметические операции с плавающей запятой по аналогии с командой let.
Добавлена динамически выставляемая переменная BASH_MONOSECONDS, которая содержит текущее значение системных монотонных часов, которые непрерывно увеличиваются, даже при изменении времени в прошлое значение.
В режиме POSIX сравнение строк в команде «test», используя операторы »‹» и »›», теперь производится с учётом текущей локали.
В команде «bind -x» разрешено разделение пробелом клавиши и вызываемой команды, если последовательность заключена в двойные кавычки.
В новой версии Readline предложена опция «search-ignore-case» для поиска в истории без учёта регистра символов. Добавлена команда «export-completions» для экспорта вариантов дополнения слова для обработки в других процессах. Добавлена команда «execute-named-command» для выполнения команды, имя которой получено из стандартного входного потока.
Источник: http://www.opennet.ru/opennews/art.shtml? num=63532
© OpenNet
