Etter tjue måneder med utvikling er den nye versjonen av kommandotolkeren GNU Bash 5.2, som brukes som standard i de fleste Linux-distribusjoner, offentliggjort. Samtidig ble versjonen av readline-biblioteket 8.2, som brukes i bash for å organisere redigering av kommandolinjen, lansert.
Blant de viktigste forbedringene er:
- Koden for parsing av kommando-substitusjonskonstruksjoner (command substitution, substitusjon av utdata fra en annen kommando, for eksempel «$(command)» eller `command`) er skrevet på nytt. Den nye implementeringen bruker rekursiv oppkalling av bison-parseren og har en bedre syntaksjekking med tidlig feilidentifisering i substitusjonskonstruksjonene.
- Parsing og utvidelse av indeksene i matriser er forbedret. Det er implementert muligheten for å bruke parameterne «@» og «*» i den innebygde kommandoen unset for å tilbakestille nøkkelen med en gitt verdi i stedet for å tilbakestille hele matrisen.
- En ny innstillingsparameter «patsub_replacement» er lagt til, der symbolet «&» i den substituerte strengen brukes til å sette inn delen av strengen som samsvarer med det gitte mønsteret. For å sette inn litteralet «&» må det escapes med skråstrek.
- Antallet situasjoner der det ikke opprettes nye prosesser er utvidet; for eksempel anvendes ikke fork nå ved bruk av konstruksjonen «$(<file)».
- Et nytt internt rammeverk for timere og timeout-beregning er implementert.
- Det er gitt mulighet for å aktivere en alternativ implementering av matriser på byggestadiet (sconftigure —enable-alt-array-implementation), som er optimalisert for maksimal tilgangshastighet på bekostning av økt minneforbruk.
- Bruken av substitusjoner $’…’ og $»…», som brukes ved lokalisering, er utvidet. Innstillingen noexpand_translations og byggalternativet «configure —enable-translatable-strings» er lagt til for å kontrollere støtte for lokaliseringsvennlige substitusjoner $»…».
- En ny innstilling «globskipdots» er lagt til og aktivert som standard, som forbyr retur av «.» og «..» ved utvidelse av stier.
Kilde: opennet.ru
