Відповіді:
Зміни, внесені bash
між релізами 4.4 та 5.0 (випущені 2019-01-07), можна знайти у NEWS
файлі у bash
розподілі джерела.
Ось посилання на нього (змін тут занадто багато, щоб їх перерахувати тут).
loadable builtins
. Чи bash
слідкуйте за новим стандартним стандартом, ksh93
щоб знайти розширені вбудовані елементи, PATH
а не надавати їм завжди пріоритет?
bash
4.4 і пізніших версій використовує BASH_LOADABLES_PATH
та завантажує їх звідти enable -f builtin-name
.
enable
виглядає як повторне виконання ksh93
команди, builtin
але у неї відсутня можливість приєднати шлях до кожної вбудованої команди, яка в, ksh93
як правило, заздалегідь визначена /usr/ast/bin/<name>
і дозволяє мати тонкозернистий контроль над усіма побудованими командами.
Якщо ви, як і я, шукаєте функції заголовка, а не повний журнал змін, це повідомлення виконавця, Чет Рамі, перевершує це. Ось цікавий розділ:
Цей випуск виправляє кілька виправлених помилок у bash-4.4 та вводить кілька нових функцій. Найбільш значні виправлення помилок - це уточнення способу вирішення змінних nameref та ряд потенційних помилок пам'яті поза межами діапазону, виявлених за допомогою плавлення. Існує ряд змін у розширенні $ @ та $ * у різних контекстах, коли розбиття слів не виконується відповідно до стандартної інтерпретації Posix, та додаткові зміни для вирішення кутових випадків відповідності Posix.
Найбільш помітними новими функціями є кілька нових змінних оболонок: BASH_ARGV0, EPOCHSECONDS та EPOCHREALTIME. Вбудований "історія" може видаляти діапазони записів історії та розуміє негативні аргументи як компенсації з кінця списку історії. Існує можливість дозволити локальним змінним успадковувати значення змінної з тим самим іменем у попередній області застосування. Існує нова опція оболонки, яка при ввімкненні викликає оболонку спроби розширити асоціативні підписи масиву лише один раз (це проблема, коли вони використовуються в арифметичних виразах). Параметр оболонки `globasciiranges 'тепер увімкнено за замовчуванням; його можна встановити за замовчуванням у час конфігурації.
Існує декілька несумісних змін між bash-4.4 та bash-5.0. Зміни способу вирішення змінних nameref означають, що деякі способи використання namerefs будуть вести себе по-різному, хоча я намагався мінімізувати проблеми сумісності. За замовчуванням оболонка встановлює лише BASH_ARGC та BASH_ARGV при запуску, якщо ввімкнено розширений режим налагодження; Це було недоглядом, що воно було встановлено беззастережно і спричиняло проблеми з продуктивністю, коли сценарії передавали велику кількість аргументів.
Він також посилається на ці два файли, якщо ви хочете більше:
Вбудований "історія" може видаляти діапазони записів історії та розуміє негативні аргументи як компенсації з кінця списку історії.
Приклад видалення діапазону:
history -d 123-130
або видалення останніх 10:
history -d -10--1
Витяг із сторінки чоловіка Bash 5 :
"історія"
Опції, якщо вони постачаються, мають таке значення:
'-d OFFSET' Видалити запис історії в позиції OFFSET. Якщо OFFSET позитивний, його слід вказати так, як він з’являється при відображенні історії. Якщо OFFSET негативний, він інтерпретується як відносний до одного, більший за останню позицію історії, тому від'ємні показники відлічуються з кінця історії, а індекс '-1' посилається на поточну команду 'history -d'.
'-d START-END' Видалити записи історії між позиціями START і END, включно. Позитивні та негативні значення для START і END інтерпретуються як описано вище.
Дивіться мою відповідь: Видаліть діапазон історії баш
CHANGES
файлі: git.savannah.gnu.org/cgit/bash.git/tree/…