Efter tyve måneder med udvikling er den nye version af kommandotolken GNU Bash 5.2 blevet offentliggjort, som er standard i de fleste Linux-distributioner. Samtidig er version 8.2 af readline-biblioteket blevet frigivet, som anvendes i bash til at håndtere redigering af kommandolinjen.
Blandt de vigtigste forbedringer kan nævnes:
- Koden til parsning af kommandoudskiftning er blevet omskrevet. Den nye implementering bruger rekursive kald til bison-parseren og adskiller sig ved en bedre syntaksvalidering samt tidlig identificering af fejl i de udskiftede konstruktioner.
- Parsning og udfoldning af array-indekser er blevet forbedret. Der er blevet tilføjet mulighed for at bruge parametrene «@» og «*» i den indbyggede unset-kommando til at nulstille en nøgle med en given værdi i stedet for at nulstille hele arrayet.
- En ny indstilling «patsub_replacement» er blevet tilføjet, som når aktiveret, bruger tegnet «&» i den udskiftede streng til at indsætte en del af strengen, der matcher det angivne mønster. For at indsætte literalen «&» kræves det, at den escaperes med en omvendt skråstreg.
- Antallet af situationer, hvor der ikke foretages fork af ekstra processer, er blevet udvidet; eksempelvis anvendes fork ikke ved brug af konstruktionen «$(<file)».
- Et nyt internt framework til timer og tidsbegrænsninger er blevet implementeret.
- Der er givet mulighed for at aktivere en alternativ implementering af arrays under kompilering (configure —enable-alt-array-implementation), som er optimeret for maksimal adgangshastighed på bekostning af øget hukommelsesforbrug.
- Brugen af udskiftningerne $’…’ og $»…», der anvendes ved lokalisering, er blevet udvidet. Der er tilføjet konfigurationen noexpand_translations og kompilationsmuligheden «configure —enable-translatable-strings», der styrer aktiveringen af støtte til lokaliserbare udskiftninger $»…».
- Den nye indstilling «globskipdots» er blevet tilføjet og aktiveret som standard, hvilket forbyder returnering af «.» og «..» ved udfoldning af stier.
Kilde: opennet.ru
