Nakon dvadeset mjeseci razvoja objavljena je nova verzija komandnog interpreter GNU Bash 5.2, koja se defaultno koristi u većini Linux distribucija. Istovremeno je objavljen i novi izdanja biblioteke readline 8.2, koja se koristi u bashu za organizaciju uređivanja komandne linije.
Od ključnih poboljšanja može se istaknuti:
- Kod za analizu konstrukcija zamjene komandi (command substitution, umetanje izlaza od izvršavanja druge komande, npr. «$(command)» ili `command`) je ponovno napisan. Nova implementacija koristi rekurzivno pozivanje bison parser-a i odlikuje se kvalitetnijom provjerom sintakse i ranijim otkrivanjem grešaka u zamjenjivim konstrukcijama.
- Poboljšana je analiza i otkrivanje indeksa nizova. Implementirana je mogućnost korištenja parametara «@» i «*» u ugrađenoj komandi unset za resetiranje ključa s određenom vrijednošću umjesto resetiranja cijelog niza.
- Dodana je nova postavka «patsub_replacement», pri čemu se prilikom postavljanja simbol «&» u zamijenjenom stringu koristi za umetanje dijela stringa koji odgovara zadanom obrascu. Da biste umetnuli literalan «&», potrebno je escape-ovanje s obrnutim kosom crtom.
- Proširen je broj situacija u kojima se ne izvršava fork dodatnih procesa, na primjer, fork se više ne primjenjuje prilikom korištenja konstrukcije «$(<file)».
- Implementiran je novi unutarnji okvir za tajmere i izračunavanje vremenskih ograničenja.
- Omogućena je aktivacija alternativne implementacije nizova tokom faze izgradnje (sconfigure —enable-alt-array-implementation) koja je optimizovana za postizanje maksimalne brzine pristupa, po cijenu povećane upotrebe memorije.
- Proširena je upotreba zamjena $’…’ i $»…», koje se koriste prilikom lokalizacije. Dodane su postavke noexpand_translations i opcija za izgradnju «configure —enable-translatable-strings», koje upravljaju uključivanjem podrške za lokalizovane zamjene $»…».
- Dodana i uključena po defaultu postavka «globskipdots», koja zabranjuje vraćanje «.» i «..» prilikom otkrivanja putanja.
Izvor: opennet.ru
