Состоялся большой релиз командной оболочки Bash 5.0.
Дата релиза: 7 января 2019 г.
Расшифровка Bash: Bourne Again SHell.
Предыдущий релиз Bash 4.0 был выпущен 10 лет назад (2009). А версия 4.4 уже два с половиной года назад (2016). Поэтому однозначно можно сказать, что выход версии 5.0 это довольно большое событие в мире Linux.
Что нового
В новой версии Bash 5.0 было исправлено множество ошибок предыдущей версии и добавлены новые функции. Есть ряд изменений не совместимых с предыдущими версиями. Ниже приведены некоторые из изменений.
Добавлены новые переменные оболочки: BASH_ARGV0, EPOCHSECONDS и EPOCHREALTIME.
BASH_ARGV0 — устанавливается равным $ 0.
EPOCHSECONDS — «Unix time» в секундах.
EPOCHREALTIME — «Unix time» в микросекундах.
Добавлена возможность удалять команды в истории (history), используя диапазоны индексов (-d start-end), а также использовать отрицательные индексы для смещения по истории команд.
Локальные переменные теперь могут наследовать значение переменной с таким же именем из внешней области видимости.
Добавлена опция (globasciiranges), позволяющая оболочке разворачивать индексы ассоциативных массивов только один раз (нужно при использовании в арифметических выражениях). Параметр globasciiranges теперь включен по умолчанию. Можно отключить в настройках.
Реализация команд rm, stat, fdflags теперь встроена в Bash.
Внесены изменения в способ разрешения ссылочных переменных nameref, поэтому разные варианты использования таких переменных теперь могут вести себя по разному.
Теперь по умолчанию переменные BASH_ARGC и BASH_ARGV включены только если включен режим отладки. Это было сделано для повышения производительности, когда скриптам передается большое количество аргументов.
Добавлена опция syslog_history (по умолчанию отключена), позволяющая отключить запись истории команд в syslog.
Встроенная реализация malloc теперь использует mmap (если доступно) для обработки запросов на выделение памяти больше 128Кб. Соответственно, для освобождения таких блоков, free может теперь использовать mfree, чтобы вернуть страницы в ядро.
Встроенная команда kill теперь поддерживает опции -sSIGNAME и -nSIGNUM.
В файл config-top.h добавлен define позволяющий жестко установить значения переменных $PATH и $HISTSIZE, игнорируя все другие определения.
По желанию Bash 5.0 может быть связан с уже установленной библиотекой Readline, а не использовать «штатную» из lib/readline. Поддерживается только Readline 8.0 и более поздние версии. Предыдущие версии Readline не будут работать корректно. Релиз Readline 8.0 также состоялся одновременно с релизом Bash 5.0.
Как узнать версию Bash
Чтобы узнать версию Bash выполните в терминале команду:
bash --version
Комментарии
23:16
оЧепятка)
23:31