Na twintig maanden ontwikkeling is de nieuwe versie van de GNU Bash-opdrachtinterpreter 5.2 vrijgegeven, die standaard wordt gebruikt in de meeste Linux-distributies. Tegelijkertijd is versie 8.2 van de readline-bibliotheek uitgebracht, die in bash wordt gebruikt voor het beheren van de opdrachtregelbewerking.
Belangrijke verbeteringen omvatten:
- De code voor het parseren van opdrachtvervangingen (command substitution, de uitvoer van een andere opdracht invoegen, bijvoorbeeld ‘$(command)’ of `command`) is herschreven. De nieuwe implementatie maakt gebruik van recursieve aanroepen van de bison-parser en biedt betere syntaxiscontrole en eerdere detectie van fouten in vervangingen.
- De parsing en ontbinding van array-indexen zijn verbeterd. Er is nu de mogelijkheid om de parameters ‘@’ en ‘*’ te gebruiken in de ingebouwde unset-opdracht om een sleutel met een opgegeven waarde te resetten in plaats van de hele array te resetten.
- Er is een nieuwe instelling ‘patsub_replacement’ toegevoegd, waarbij het teken ‘&’ in de vervangende string wordt gebruikt om een deel van de string in te voegen dat overeenkomt met een opgegeven sjabloon. Voor het invoegen van het letterlijke ‘&’ is escapen met een backslash nodig.
- Het aantal situaties is uitgebreid waarin geen extra processen worden opgestart; bijvoorbeeld, fork wordt nu niet gebruikt bij het toepassen van de constructie ‘$(<file)’.
- Een nieuw intern framework voor timers en timeout-berekeningen is geïmplementeerd.
- Er is nu een optie toegevoegd voor inschakeling tijdens de bouw (configure —enable-alt-array-implementation) voor een alternatieve implementatie van arrays, geoptimaliseerd voor maximale toegangssnelheid ten koste van een hoger geheugenverbruik.
- Het gebruik van $’…’ en $»…’ is uitgebreid, die worden gebruikt voor lokalisatie. Er zijn instellingen noexpand_translations en een bouwoptie ‘configure —enable-translatable-strings’ toegevoegd, die de ondersteuning van lokaliseerbare substituties $»…’ beheert.
- De instelling ‘globskipdots’ is toegevoegd en standaard ingeschakeld, die het teruggeven van ‘.’ en ‘..’ bij het uitbreiden van paden verbiedt.
Bron: opennet.ru
