รุ่นนี้แก้ไขข้อบกพร่องที่โดดเด่นใน bash-4.4 และแนะนำคุณสมบัติใหม่หลายอย่าง การแก้ไขข้อบกพร่องที่สำคัญที่สุดคือการยกเครื่องว่าตัวแปร nameref แก้ไขและจำนวนข้อผิดพลาดของหน่วยความจำนอกขอบเขตที่ค้นพบผ่านการทำให้งงงวย มีการเปลี่ยนแปลงจำนวนมากในการขยาย $ @ และ $ * ในบริบทต่าง ๆ ที่การแยกคำไม่ได้ดำเนินการเพื่อให้สอดคล้องกับการตีความมาตรฐาน Posix และการเปลี่ยนแปลงเพิ่มเติมเพื่อแก้ไขกรณีมุมสำหรับความสอดคล้อง Posix
คุณสมบัติใหม่ที่โดดเด่นที่สุดคือตัวแปรเชลล์ใหม่หลายตัว: BASH_ARGV0, EPOCHSECONDS และ EPOCHREALTIME builtin `history 'สามารถลบช่วงของรายการประวัติและเข้าใจข้อโต้แย้งเชิงลบเป็นออฟเซ็ตจากส่วนท้ายของรายการประวัติ มีตัวเลือกในการอนุญาตให้ตัวแปรโลคัลสืบทอดค่าของตัวแปรที่มีชื่อเดียวกันที่ขอบเขตก่อนหน้านี้ มีตัวเลือกเชลล์ใหม่ที่เมื่อเปิดใช้งานจะทำให้เชลล์พยายามขยายตัวเชื่อมโยงอาร์เรย์ที่เชื่อมโยงเพียงครั้งเดียว (นี่เป็นปัญหาเมื่อมีการใช้ในการแสดงออกทางคณิตศาสตร์) ตัวเลือกเชลล์ `globasciiranges 'ถูกเปิดใช้งานตามค่าเริ่มต้นแล้ว สามารถตั้งค่าเป็นปิดได้ตามค่าเริ่มต้นเมื่อถึงเวลากำหนดค่า
มีการเปลี่ยนแปลงบางอย่างที่เข้ากันไม่ได้ระหว่าง bash-4.4 และ bash-5.0 การเปลี่ยนแปลงวิธีแก้ไขตัวแปร nameref หมายความว่าการใช้ namerefs บางอย่างจะทำงานแตกต่างกันแม้ว่าฉันจะพยายามลดปัญหาความเข้ากันได้ให้น้อยที่สุดก็ตาม โดยค่าเริ่มต้นเชลล์ตั้งค่า BASH_ARGC และ BASH_ARGV เมื่อเริ่มต้นเท่านั้นหากเปิดใช้งานโหมดแก้ไขข้อบกพร่องเพิ่มเติม เป็นการตรวจสอบว่ามีการตั้งค่าอย่างไม่มีเงื่อนไขและทำให้เกิดปัญหาประสิทธิภาพเมื่อสคริปต์ถูกส่งผ่านการขัดแย้งจำนวนมาก
CHANGES
ไฟล์: git.savannah.gnu.org/cgit/bash.git/tree/…