После трёх лет разработки вышла новая версия командного интерпретатора GNU Bash 4.3, используемого по умолчанию в большинстве дистрибутивов Linux.
Из улучшений можно отметить:
- Поддержка назначения и использования элементов массивов с отрицательными значениями индекса (напрмер, a[-1]=2, echo ${a[-1]}), при этом отрицательное значение задаёт обратных отчёт с последнего элемента массива (a[-1] - предпоследний элемент и т.п.).
- В командах return и exit добавлена возможность указания отрицательных кодов завершения работы;
- В коде автодополнения имён файлов и команд обеспечено раскрытие переменных, определяющих часть пути. Если автодополнение связано с директорией, то в конце теперь добавляется символ "/";
- Встроенная команда read теперь игнорирует нулевые байты при вводе;
- При автодополении команды в коде сопоставления теперь игнорируются пробелы и операторы присваивания;
- Опции "-nt" и "-ot" команды test теперь позволяют осуществлять проверки c наносекундной точностью;
- Механизм подстановки теперь допускает использование внутри блоков {}< специальных переменных (например, BASH_XTRACEFD) и выражений, подобных {array[ind]};
- Добавлена переменная BASH_COMPAT для управления совместимостью с прошлыми реализациями командой оболочки;
- В cd добавлена опция "-@" для для просмотра расширенных атрибутов файла на системах с поддержкой O_XATTR;
- В бинарном операторе test/[/[[ '-v variable' добавлена поддержка ссылок на массивы;
- Улучшение встроенной системы подсказки. Для команды helptopic реализовано автодополнение всех разделов помощи, а не только встроенных команд. Изменён порядок выборки ключевых слов поиска, вместо выборки по маске теперь вначале осуществляется проверка точного совпадения;
- Добавлена возможность сборки оболочки с отключением вывода сообщений о завершении процессов по SIGTERM;
- Добавлена новая опция globasciiranges, при активации которой в операциях сортировки принудительно используется порядок символов, определённый в локали C;
- Попытка определения в режиме POSIX функции, имя которой пересекается с предопределёнными функциями теперь приводит к выводу ошибки;
- Указание в переменных HISTSIZE, history-size и HISTFILESIZE отрицательных значений теперь воспринимается как снятие ограничений на размер списка и файла с историей операций;
- Добавлена новая опция "bind -X", которая выводит список привязки всех клавиатурных комбинаций с командам Unix;
- История ввода команд теперь сохраняется для всех сеансов оболочки, а не только интерактивных;
- Поддержка переменных nameref, опций -n(/+n) для их установки и команды "test -R" для их проверки;
- Добавлена переменная CHILD_MAX для управления числом запоминаемых состояний завершения выполнения дочерних процессов;
- Добавлена опция сборки "--enable-direxpand-default" для включения по умолчанию опции direxpand;
- Во встроенную команду wait добавлена опция "-n" для ожидания изменения статуса следующего дочернего процесса;
- При указании %(...)T в printf без явного указания аргументов формата теперь выводится текущее время;
- Изменения в библиотеке Readline:
- Улучшена обработка поступления SIGHUP и других фатальных сигналов в процессе ввода,
- Добавлены команды history-substring-search-forward и history-substring-search-backward для поиска по истории с учётом текущей позиции,
- Обеспечено создание резервной копии файла с историей ввода и его восстановление при возникновении ошибки при записи в основной файл,
- Добавлена поддержка переменной colored-stats для организации выделения цветом разных типов файлов (цветной аналог visible-stats),
- Добавлена переменная show-mode-in-prompt для включения индикации режима редактирования в приглашении командной строки.