Po dvajsetih mesecih razvoja je bila objavljena nova različica tolmača ukazov GNU Bash 5.2, ki se privzeto uporablja v večini distribucij Linuxa. Istočasno je bila ustvarjena izdaja knjižnice readline 8.2, ki se uporablja v bash za organiziranje urejanja ukazne vrstice.
Ključne izboljšave vključujejo:
- Prepisana koda za razčlenjevanje konstruktov zamenjave ukaza (zamenjava ukaza, zamenjava izhoda pri izvajanju drugega ukaza, na primer »$(ukaz)« ali `ukaz`). Nova izvedba uporablja rekurziven klic razčlenjevalniku bison in ima boljše preverjanje sintakse ter zgodnje odkrivanje napak v zamenjanih strukturah.
- Izboljšano razčlenjevanje in razširitev matričnih indeksov. Implementirana možnost uporabe parametrov »@« in »*« v vgrajenem ukazu unset za ponastavitev ključa z dano vrednostjo namesto ponastavitve celotne matrike.
- Dodana je nova nastavitev »patsub_replacement«, ko je nastavljena, se znak »&« v zamenjanem nizu uporabi za zamenjavo dela niza, ki se ujema z navedenim vzorcem. Če želite vstaviti dobesedni »&«, ga morate ubežati s poševnico nazaj.
- Število situacij, v katerih dodatni procesi niso razcepljeni, je bilo razširjeno, na primer, razcepitev se ne uporablja več pri uporabi »$(
- Implementirano je bilo novo notranje ogrodje za časovnike in izračune časovne omejitve.
- Možno je omogočiti alternativno implementacijo nizov v fazi gradnje (configure —enable-alt-array-implementation), ki je optimizirana za doseganje največje hitrosti dostopa za ceno povečane porabe pomnilnika.
- Uporaba nadomestkov $'…' in $"..." pri lokalizaciji je bila razširjena. Dodana nastavitev noexpand_translations in možnost gradnje »configure --enable-translatable-strings« za nadzor nad tem, ali je omogočena podpora za lokalizirajoče zamenjave $"...".
- Dodana in privzeto omogočena nastavitev "globskipdots", ki onemogoči vračanje "." in ".." pri odpiranju poti.
Vir: opennet.ru