Вышла новая версия командного интерпретатора GNU Bash 4.2.

Из улучшений можно отметить:

  • Для команд declare/typeset добавлена новая опция "-g", при указании которой переменные имеют глобальную область видимости, т.е. видны даже в отдельных функциях;
  • Указание отрицательного индекса массива теперь не приводит к ошибке и воспринимается как обратное смещение от конца массива;
  • Отрицательный размер, указанный в блоке ${var:offset:length} теперь не приводит к ошибке и воспринимается как обратное смещение от конца переменной;
  • В блоки $'...', echo и printf добавлено распознавание escape-последовательностей \uXXXX и \UXXXXXXXX;
  • В команде test/[/[[ добавлена поддержка оператора "-v", который возвращает "истину" в случае установки указанной в качестве аргумента переменной;
  • Команда "time" теперь может использоваться для вывода времени выполнения текущей оболочки (shell) и дочерних процессов;
  • Добавлена переменная FUNCNEST, которая позволяет ограничить уровень вложенности выполняемых функций, что позволяет предотвратить ситуацию бесконечной рекурсии;
  • Во встроенной команде printf добавлена поддержка спецификатора "%(fmt)T", позволяющего указать формат вывода времени в стиле strftime;
  • Выполнение "exec -a foo" теперь устанавливает в переменную $0 выполняемого скрипта имя "foo" без лидирующих знаков "#!";
  • При выполнении во вложенной оболочке (subshell) команд замены, функций и встроенных команд, идентифицирующая trap строка теперь не сбрасывается до момента установки нового trap-а, что позволяет использовать $(trap) для просмотра trap-а вызывающей оболочки;
  • Команда "trap -p" теперь отображает сигналы, игнорированные при запуске bash;
  • Изменен метод разбора POSIX-нотации, который теперь допускает указание в блоках "! time command" нескольких выражений "! time" подряд;
  • Блоки $((...)) теперь всегда разбираются в первую очередь как арифметические выражения (ранее вначале выполнялся разбор потенциально возможного указания вложенных команд);
  • Во встроенной команде mapfile добавлена поддержка третьего аргумента, указывающего на callback-команду, которой будет передан номер последнего элемента заполненного массива;
  • Добавлена новая опция "compat41", включающая режим совместимости с Bash 4.1;
  • Во встроенную команду "cd" добавлена поддержка определенной в POSIX опции "-e";
  • Добавлена новая опция оболочки "lastpipe", позволяющая запустить последнюю команду из конвейера (pipeline) в контексте текущей оболочки;
  • Элементы режима POSIX-совместимости приведены в соответствие со стандартом POSIX 2008.

Изменения в библиотеке Readline:

  • Функции сохранения истории более не пытаются создать файл в текущей директории, если переменная $HOME не установлена, так как это может привести к проблемам с безопасностью в случае, если имя файла истории не определено в приложении;
  • Добавлена новая переменная "completion-display-width", в которой может быть указано число столбцов, используемых для отображения вариантов автозавершения строки;
  • Добавлена новая переменная "completion-case-map", позволяющая определить карту идентичности символов для режима автодополнения без учета регистра, например, уровнять "-" и "_";
  • Добавлена новая переменная "menu-complete-display-prefix", позволяющая определить типовой префикс для приоритетной начальной проверки соответствия элементов меню, который будет использован до цикличного просмотра списков.


Источник: http://www.opennet.ru/opennews/art.shtml?num=29591