Утилита Bash shell превращается в 5.0

За несколько месяцев до празднования 30-летия переводчика командного языка Bash, проект GNU выпустил Bash 5.0 с исправлениями ошибок и новыми переменными оболочки.

Поскольку мы с нетерпением ожидаем выхода Linux Kernel 5.0 в ближайшие недели, мы можем воспользоваться еще одной почтенной технологией с открытым исходным кодом, достигающей вехи 5.0: утилита оболочки Bash .
Проект GNU выпустил общедоступную версию 5.0 стандартного интерпретатора языка команд GNU / Linux.
Bash 5.0 добавляет новые переменные оболочки и другие функции, а также исправляет несколько основных ошибок.

Новые переменные оболочки в Bash 5.0 включают в себя BASH_ARGV0, который «расширяется до $ 0 и устанавливает $ 0 при назначении», говорится в проекте.
Переменная EPOCHSECONDS расширяется до времени в секундах с начала эпохи Unix, а EPOCHREALTIME делает то же самое, но с микросекундной гранулярностью.

Новые функции включают встроенную функцию «history -d», которая может удалять диапазоны записей истории и воспринимать отрицательные аргументы как смещения из конца списка истории.
Существует также новая опция под названием «localvar_inherit», которая позволяет локальным переменным наследовать значение переменной с тем же именем в ближайшей предыдущей области.

Новая опция оболочки, называемая «assoc_expand_once», заставляет оболочку пытаться развернуть индексы ассоциативных массивов только один раз, что может потребоваться, когда они используются в арифметических выражениях.
Среди многих других новых функций доступна новая опция, которая может отключить отправку истории в системный журнал во время выполнения.
Кроме того, опция оболочки «globasciiranges» теперь включена по умолчанию.

Bash 5.0 также исправляет несколько основных ошибок.
Он пересматривает способы разрешения переменных nameref и исправляет «ряд потенциальных ошибок памяти за пределами границ, обнаруженных с помощью фаззинга», - говорится в readme проекта GNU.
Внесены изменения в «расширение $ @ и $ * в различных контекстах, где расщепление слов не выполняется для соответствия стандартной интерпретации Posix». Другие исправления разрешают угловые случаи для соответствия Posix.

Наконец, Bash 5.0 содержит несколько несовместимостей по сравнению с последней версией Bash 4.4.x.
Например, изменения в том, как разрешаются переменные nameref, могут вызвать различное поведение для некоторых применений nameref.

Баш к основам

Bash (Bourne-Again Shell) может быть 5,0 в годы разработки, но он намного старше на земных орбитах.
Утилита скоро отметит свое 30-летие, так как Брайан Фокс выпустил бета-версию Bash 1.0 в июне 1989 года.

За прошедшие годы Bash расширил спецификации оболочки POSIX с интерактивным редактированием командной строки, заменой истории, расширением фигурных скобок, а на некоторых архитектурах - функциями управления заданиями.
Он также заимствовал особенности оболочки Korn (ksh) и оболочки C (csh).
По словам проекта GNU, большинство сценариев sh могут быть запущены Bash без изменений.

Bash и другие основанные на Bourne утилиты оболочки в значительной степени пережили введение альтернатив командной строки с графическим интерфейсом, таких как Git GUI.
Опытные разработчики Linux - и особенно системные администраторы - обычно предпочитают большую скорость и гибкость работы непосредственно с командной строкой.
Есть также ситуации, когда GUI все равно вернет вас обратно в командную строку.

Это действительно вопрос того, будете ли вы тратить достаточно времени на разработку или администрирование Linux, чтобы учесть команды.
Кроме того, в фильме разве не более интересно наблюдать за тем, как хакер отчаянно стучит по командной строке, чтобы отключить ядерное оружие, а не щелкая опции в меню?
Щелкающие правила!

Bash 5.0 доступен для загрузки со страницы readme для GNU Project Bash 5.0 .

Эта статья защищена авторским правом © 2019 Linux.com и была первоначально опубликована здесь .
Он был воспроизведен этим сайтом с разрешения его владельца.
Пожалуйста, посетите Linux.com для получения последних новостей и статей о Linux и open source.