Вышел BASH 4.1

02.01.2010 12:03

Доступна новая версия командного интерпретатора Gnu Bash 4.1.

Новшества, реализованные с момента выхода bash 4.0:

  • В функцию read добавлена поддержка опции "-N число_символов", позволяющей считать из входного потока только заданное число символов;
  • При проверке статуса файлов (исполняемый, доступный на чтение и т.п.) теперь учитываются системные ACL для поддерживающих их файловых систем;
  • Bash теперь пропускает к дочерним процессам переменные окружения в которых использованы недопустимые имена переменных;
  • Readline-функция "execute-unix-command" теперь пытается очистить и заново использовать текущую строку, вместо перехода к следующей строке после выполнения заданной команды;
  • "printf -v" теперь позволяет назначить значение массиву индексов;
  • Добавлены опции "complete -E" и "compopt -E" для работы с "пустыми" дополнениями (определяют правила дополнения пустой командной строки). Другая новая опция "-D" в complete/compgen/compopt определяет дополнение, используемое по умолчанию, что может быть использовано для формирования сложной многоуровневой логики автодополнения;
  • При отображении ассоциативных массивов, ключевые элементы теперь выводятся в кавычках;
  • dabbrev-expand приведен к emacs-подобному стилю: после совпадения не добавляются пробелы, дополнения не сортируются, наиболее старые элементы истории выводятся в первую очередь;
  • Команды "[[" и "((" теперь можно обрабатывать через 'set -e' и ERR trap;
  • Оператор включения файлов "source/." теперь удаляет нулевые символы из файла перед парсингом команд;
  • Через изменение конфигурационных параметров config-top.h теперь можно настроить перенаправление истории операций в syslog;
  • Добавлена переменная $BASHOPTS для экспорта всех опций shell, установленных для дочерних процессов через shopt;
  • Добавлена переменная $BASH_XTRACEFD, при установке в которую целого числа, bash начинает генерировать отладочный xtrace вывод в указанный файловый дескриптор;
  • Операторы "<" и ">" внутри условия "[[" теперь могут использоваться для сравнения строк с учетом текущей локали;
  • Встроенные функции mapfile/readarray больше не сохраняют выполненные команды в списке истории работы;
  • Для включения режима совместимости с bash 4.0 для shopt подготовлена опция compat40;
  • Расширены возможность библиотеки readline и shell биндинга к ней, добавлено несколько новых функций (menu-complete-backward, skip-csi-sequence, rl_filename_rewrite_hook) и переменных (skip-completed-text, echo-control-characters, enable-meta-key).