Po dvajsetih mesecih razvoja je objavljena nova različica ukaznega interpreterja GNU Bash 5.2, ki se privzeto uporablja v večini distribucij Linuxa. Hkrati je izdan tudi novi različica knjižnice readline 8.2, ki se uporablja v bashu za organizacijo urejanja ukazne vrstice.
Ključne izboljšave vključujejo:
- Koda za razčlenitev konstrukcij zamenjave ukazov (command substitution, podstavitev izhoda izvajanja drugega ukaza, kot je «$(command)» ali `command`) je bila znova napisana. Nova izvedba uporablja rekurzivni klic parserja bison in se razlikuje po boljši sintaktični analizi ter zgodnjem odkrivanju napak v zamenjanih konstrukcijah.
- Izboljšano je razčlenjevanje in razkritje indeksov tabel. Implementirana je možnost uporabe parametrov «@» in «*» v vgrajeni ukazi unset za ponastavitev ključa s podano vrednostjo namesto ponastavitve celotne tabele.
- Dodana je nova nastavitev «patsub_replacement», pri kateri se znak «&» v nadomeščeni vrsti uporablja za vstavitev dela vrstice, ki ustreza podanemu vzorcu. Za vstavljanje literala «&» je potrebno njegovo escaping s povratno poševnico.
- Razširjeno je število situacij, v katerih se ne izvede razvejitve dodatnih procesov, na primer, fork se zdaj ne uporablja pri uporabi konstrukcije «$(<file)».
- Implementiran je nov notranji okvir za časovnike in izračun časovnih omejitev.
- Omogočeno je vključitev alternativne izvedbe tabel med fazo sestavljanja (configure —enable-alt-array-implementation), ki je optimizirana za dosego največje hitrosti dostopa na račun povečane porabe pomnilnika.
- Razširjeno je uporabo zamenjav $’…’ in $»…», ki se uporabljajo pri lokalizaciji. Dodane so nastavitve noexpand_translations in možnost sestavljanja «configure —enable-translatable-strings», ki nadzirata vključitev podpore lokaliziranim zamenjavam $»…».
- Dodana in privzeto vključena nastavitev «globskipdots», ki prepove vračanje «.» in «..» pri razkrivanju poti.
Izvor: opennet.ru
