Na bijna drie jaar ontwikkeling is de nieuwe versie van de GNU Bash command interpreter 5.3 uitgebracht, die standaard wordt gebruikt in de meeste Linux-distributies. Tegelijkertijd is er een release van de readline bibliotheek 8.3, die in bash wordt gebruikt voor het organiseren van het bewerken van de commandoregel.
Belangrijke verbeteringen omvatten:
- Nieuwe vormen van commando-substitutie ā${ command; }ā en ā${|command;}ā zijn geĆÆmplementeerd, waardoor de uitvoer van een commando kan worden onderschept zonder een aparte child-proces aan te maken en zonder gebruik te maken van unnamed pipes. De resultaten van de commando-uitvoering worden gegeven als de resultaatvervanging of worden opgeslagen in de variabele REPLY.
- Een nieuwe variabele GLOBSORT is toegevoegd, die de sorteermethode bij het aanvullen van het bestandspad bepaalt. Bijvoorbeeld, er kan worden gekozen voor sorteren op naam (GLOBSORT=name), grootte (GLOBSORT=size) of wijzigingstijd (GLOBSORT=mtime), en ook de volgorde van sorteren kan rechtstreeks (van klein naar groot) of omgekeerd (van groot naar klein) zijn (bijvoorbeeld, bij āGLOBSORT=-sizeā worden de grootste bestanden eerst weergegeven).
- Aan de ingebouwde commando ācompgenā is de optie ā-V varnameā toegevoegd om de gegenereerde aanvullingen op te slaan in een variabele in plaats van deze naar de standaardoutput te sturen.
- Aan de ingebouwde commando āreadā is de optie ā-Eā toegevoegd, die bij het invoeren van gegevens de readline bibliotheek gebruikt met regels voor autocompletion van bash-constructies.
- Aan de ingebouwde commando āsourceā is de optie ā-p PATHā toegevoegd, waarmee de zoeklijst in bestandsroutes kan worden overschreven (de opgegeven waarde wordt gebruikt in plaats van de variabele $PATH).
- De broncode is aangepast aan de C23-standaard. De mogelijkheid om te worden gebouwd door compilers in āK&R Cā-modus (stijl die overeenkomt met de beschrijving van de C-taal in het boek āThe C Programming Languageā van Kernighan en Ritchie) is beĆ«indigd.
- De ingebouwde commando āumaskā is volledig compatibel gemaakt met de POSIX-specificaties.
- Een laadbare commando ākvā is toegevoegd, die een associatieve array vormt op basis van een gegevensset in het formaat āsleutel waardeā.
- Een laadbare commando āstrptimeā is toegevoegd, die een tekstuele representatie van datum en tijd omzet in Epoch-tijd (aantal seconden sinds 1 januari 1970).
- Een laadbare commando āfltexprā is toegevoegd, waarmee rekenkundige bewerkingen met drijvende kommaās kunnen worden uitgevoerd, vergelijkbaar met de commando let.
- Er is een dynamisch ingestelde variabele BASH_MONOSECONDS toegevoegd, die de huidige waarde van de systeem monotone klok bevat, die continu toeneemt, zelfs wanneer de tijd naar een verleden waarde wordt gewijzigd.
- In POSIX-modus wordt de vergelijking van strings in de opdracht 'test', met gebruik van de operatoren '', nu uitgevoerd met inachtneming van de huidige locale.
- In de opdracht 'bind -x' is het toegestaan om de toets en de oproepende opdracht door een spatie te splitsen, mits de reeks tussen dubbele aanhalingstekens staat.
- In de nieuwe versie van Readline is een optie 'search-ignore-case' toegevoegd voor het zoeken in de geschiedenis zonder rekening te houden met de hoofdlettergevoeligheid. De opdracht 'export-completions' is toegevoegd voor het exporteren van aanvulopties voor verwerking in andere processen. Er is een opdracht 'execute-named-command' toegevoegd voor het uitvoeren van een opdracht wiens naam is verkregen uit de standaardinvoer.
Bron: opennet.ru
