Po dvaceti měsících vývoje byla vydána nová verze příkazového interpreteru GNU Bash 5.2, který se ve většině distribucí Linux používá jako výchozí. Současně byl uvolněn release knihovny readline 8.2, která se v bash používá k organizaci úprav příkazového řádku.
Mezi hlavní vylepšení patří:
- Byl přepsán kód pro analýzu konstrukcí substituce příkazů (command substitution, podstata výstupu provedení jiného příkazu, například „$(command)“ nebo `command`). Nová implementace využívá rekurzivní volání parseru bison a odlišuje se kvalitnější analýzou syntaktické kontroly a včasným odhalováním chyb v substitučních konstrukcích.
- Byla vylepšena analýza a rozbalení indexů polí. Implementována byla možnost využití parametrů „@“ a „*“ ve vestavěném příkazu unset pro resetování klíče na určitou hodnotu místo resetování celého pole.
- Byla přidána nová nastavení „patsub_replacement“, při jehož nastavení je symbol „&“ ve zaměňované řetězci použit pro substituci části řetězce, která odpovídá danému vzoru. Pro vložení literálu „&“ je potřeba jeho escapování zpětným lomítkem.
- Rozšířil se počet situací, ve kterých nedochází k zakládání dalších procesů, například fork se nyní nepoužívá při použití konstrukce „$(<file)“.
- Byl zaveden nový interní rámec pro časování a výpočty timeoutů.
- Byla nabídnuta možnost zapnutí alternativní implementace polí na etapu kompilace (sconfi gure —enable-alt-array-implementation), která je optimalizována pro maximální rychlost přístupu na úkor zvýšené spotřeby paměti.
- Bylo rozšířeno použití substitucí $‘…’ a $»…’, které se používají při lokalizaci. Byla přidána nastavení noexpand_translations a konfigurační volba „configure —enable-translatable-strings“, které řídí aktivaci podpory lokalizovatelných substitucí $»…“.
- Byla přidána a ve výchozím nastavení povolena volba „globskipdots“, která zakazuje vracení „.“ a „..“ při rozbalování cest.
Zdroj: opennet.ru
