Nếu bạn, giống như tôi, đang tìm kiếm các tính năng tiêu đề thay vì thay đổi đầy đủ, bài đăng này của người duy trì, Chet Ramey, sẽ vượt qua điều đó. Đây là phần thú vị:
Bản phát hành này sửa một số lỗi nổi bật trong bash-4.4 và giới thiệu một số tính năng mới. Các sửa lỗi quan trọng nhất là một đại tu về cách các biến nameref giải quyết và một số lỗi bộ nhớ ngoài giới hạn tiềm năng được phát hiện thông qua fuzzing. Có một số thay đổi đối với việc mở rộng $ @ và $ * trong các bối cảnh khác nhau trong đó việc phân tách từ không được thực hiện để tuân theo cách hiểu theo tiêu chuẩn Posix và các thay đổi bổ sung để giải quyết các trường hợp góc cho sự phù hợp của Posix.
Các tính năng mới đáng chú ý nhất là một số biến shell mới: BASH_ARGV0, EPOCHSECONDS và EPOCHREALTIME. Nội dung 'lịch sử' có thể loại bỏ các phạm vi của các mục lịch sử và hiểu các đối số phủ định dưới dạng offset từ cuối danh sách lịch sử. Có một tùy chọn cho phép các biến cục bộ kế thừa giá trị của một biến có cùng tên ở phạm vi trước. Có một tùy chọn shell mới, khi được kích hoạt, khiến shell cố gắng mở rộng các chỉ số mảng kết hợp chỉ một lần (đây là vấn đề khi chúng được sử dụng trong các biểu thức số học). Tùy chọn hệ vỏ `continasciiranges 'hiện được bật theo mặc định; nó có thể được tắt theo mặc định tại thời điểm cấu hình.
Có một vài thay đổi không tương thích giữa bash-4.4 và bash-5.0. Những thay đổi về cách giải quyết các biến nameref có nghĩa là một số cách sử dụng namerefs sẽ hoạt động khác đi, mặc dù tôi đã cố gắng giảm thiểu các vấn đề tương thích. Theo mặc định, hệ vỏ chỉ đặt BASH_ARGC và BASH_ARGV khi khởi động nếu chế độ gỡ lỗi mở rộng được bật; đó là một sự giám sát rằng nó đã được đặt ra vô điều kiện và gây ra các vấn đề về hiệu suất khi các tập lệnh được truyền qua một số lượng lớn các đối số.
Ông cũng đề cập đến hai tập tin này, trong trường hợp bạn muốn nhiều hơn:
- TIN TỨC : chi tiết hơn (cũng trong câu trả lời của Kusalananda)
- THAY ĐỔI : chi tiết nhất
CHANGES
tệp: git.savannah.gnu.org/cgit/bash.git/tree/ mẹo