A Bash 5.3-rc2 kiadást új beépített funkciók, hibajavítások és még jobb POSIX-kompatibilitás jellemzi

1/10
Ez egy Release Candidate, azaz kiadásra jelölt verzió tesztelési célokra. Használata megfelelő elővigyázatossággal javasolt az esetleges előforduló hibák miatt.

A Bash 5.3 második kiadásra jelölt változata (5.3-rc2) már elérhető tesztelésre a hivatalos GNU FTP szerverről, valamint a fejlesztői ágról klónozható a Git-tárolóból. Az új kiadás több tucat hibát javít a 2022-ben kiadott 5.2-es verzió óta, és egy sor új funkcióval bővült, amelyek célja a hatékonyság, a POSIX-kompatibilitás és a felhasználói élmény javítása. A kiadásban a dokumentáció előformázott formában is megtalálható, és a forráskód már a legújabb C23 nyelvi szabványnak megfelelően készült, így megszűnik a támogatás a K&R-stílusú C fordítók számára.

A Bash 5.3-rc2 kiadást új beépített funkciók, hibajavítások és még jobb POSIX-kompatibilitás jellemzi

Jelentősebb újdonságok a Bash parancsértelmezőben

Az egyik legnagyobb újítás a parancshelyettesítés új formája, amely immár képes a parancsot a jelenlegi shell-környezetben végrehajtani, nem külön folyamatban. Két szintaxis is elérhető: az egyik az eredményt a REPLY változóba helyezi, míg a másik közvetlenül visszaadja a parancs kimenetét. Újdonság még a GLOBSORT változó, amely a fájlnevek globális kiterjesztésének sorrendjét befolyásolja, és a compgen beépített parancs is képes mostantól a kimenetet változóba menteni a szabványos kimenet helyett. A read parancs -E opciójával readline-alapú olvasásra is képes, programozható kiegészítéssel együtt, míg a source új-p kapcsolója a $PATH változó helyett egy tetszőleges keresési útvonalat használ.

Bővülő POSIX kompatibilitás

Számos változás történt a POSIX-kompatibilitás erősítése érdekében. A set -e és a test parancs viselkedését a szabvány új értelmezéseihez igazították, továbbá finomodtak a szkriptek forrásolása közbeni háttérfolyamat-kezelések. Jelentős fejlesztések történtek a parancsvégrehajtás és a visszatérési értékek pontosabb nyomon követésére, főként hibás szintaxis vagy megszakított végrehajtás esetén. Az exec mostantól már helyesen kezeli a sikertelen futtatás esetét, miközben megőrzi a shell állapotát. Javult a printf integer túlcsordulás-kezelése, és több edge-case helyzetre is kiterjedtek a fejlesztések.

A Readline és a történetkezelés fejlesztései

A Readline könyvtárban számos fejlesztés történt, beleértve a case-insensitive keresés támogatását, új parancs bevezetését tetszőleges Readline-parancs futtatására, valamint a lehetséges szó-kiegészítések külső folyamatok számára történő exportját. Az új export-completions parancs gépileg olvasható formátumban írja ki a szóba jöhető kiegészítéseket, míg a történetkezelés már nem hagyja figyelmen kívül az üres sorokat több soros bejegyzések esetén. Ezen túlmenően több memóriahasználattal és újrarajzolással kapcsolatos hiba is javításra került, különösen többkarakteres C locale és vi-mód használatakor.

Ismert hibák, és a közösségi visszajelzés fontossága

A 2022-es Bash 5.2-es stabil kiadáshoz képest néhány inkompatibilis változás is bevezetésre került. A test parancs viselkedése több argumentum esetén a coreutils-féle megvalósításhoz igazodott, valamint az interaktív shell már nem jelez ki befejezett háttérfolyamatokat szkriptek forrásolása közben, csak azok lezárulta után. A bashbug eszközzel jelenthetők a hibák, amelyek Chet Ramey-hez kerülnek, amennyiben a shell verziója alfa vagy béta státuszú. A fejlesztés során bevezetett több száz hibajavítás célja a konzisztensebb, biztonságosabb és előírásokhoz hűbb működés biztosítása. A projekt a közösség aktív visszajelzéseire is támaszkodik, így a tesztelés most különösen fontos szakaszához érkezett.

A kiadási megjegyzések a GNU oldalán olvashatók.