Po prawie 2 latach rozwoju (dokładnie dwadzieścia miesięcy rozwoju) uruchomienie nowa wersja powłoki GNU bash 5.2, który jest aktualizacją piątej gałęzi (5.x) i że to wydanie naprawia kilka godnych uwagi błędów w bash-5.1 i wprowadza szereg nowych funkcji.
Dla tych z was, którzy są nowicjuszami w bash, powinniście wiedzieć, że jest to domyślna powłoka w większości dystrybucji Linuksa.
Główne nowe funkcje Bash 5.2
W tej nowej wersji, która jest prezentowana z Bash 5.2 zauważono, że wykonano prace nad przepisaniem kodu w celu analizy konstrukcji podstawienia poleceń i zastąpienie wyjścia podczas wykonywania innego polecenia, takiego jak "$(polecenie)" lub `polecenie`. Nowa implementacja rekurencyjnie wywołuje parser bizonów. Zastępuje to analizowanie ad-hoc używane w poprzednich wersjach i pozwala na lepsze sprawdzanie składni i wykrywanie błędów składni znacznie wcześniej.
Kolejną zmianą, która wyróżnia się w nowej wersji Bash 5.2, jest ulepszone parsowanie i rozszerzanie indeksów tablic, plus zaimplementowano możliwość używania parametrów „@” i „*” we wbudowanym poleceniu do resetowania klucza do określonej wartości zamiast resetowania całej tablicy.
Oprócz tego wspomina się również, że dodano nowe ustawienie „patsub_replacement”, gdy jest ustawiony, znak '&' w zastępowanym ciągu jest używany do zastąpienia części ciągu, która pasuje do podanego wzorca.
Również podkreśla się, że pojawiły się nowe ramy czasu oczekiwania na readline, w tym nowy
funkcje publiczne do ustawiania limitów czasu i sprawdzania, ile czasu pozostało do jego wygaśnięcia, a ponadto jest nowa opcja konfiguracyjna: --with-shared-termcap-library, która zmusza współdzieloną bibliotekę readline do linkowania do współdzielonej biblioteki termcap (lub curses /ncurses/termlib), więc aplikacje nie muszą.
Z innych zmian które wyróżniają się na tle nowej wersji Bash 5.2:
- Rozszerzono liczbę sytuacji, w których dodatkowe procesy nie są rozwidlane, na przykład rozwidlenie nie jest już używane podczas korzystania z konstrukcji "$("
- Wdrożono nową wewnętrzną strukturę do obliczania timera i limitu czasu.
- Zapewniono możliwość włączenia w czasie kompilacji (configure --enable-alt-array-implementation) alternatywnej implementacji tablicy, która jest zoptymalizowana pod kątem maksymalnej szybkości dostępu kosztem zwiększonego zużycia pamięci.
- Rozszerzone użycie podstawień $'…' i $»…» używanych w lokalizacji.
- 'printf' ma nowy specyfikator formatu '%Q'. Działa to jak „%q”, ale stosuje określoną precyzję do oryginalnego argumentu bez cudzysłowów, a następnie cytuje i wyświetla wynik.
- Dodano ustawienie noexpand_translations i opcję kompilacji "configure --enable-translatable-strings", aby kontrolować, czy włączona jest obsługa lokalizowalnych podstawień $"...".
- W trybie posix, `printf' może być teraz używany long double dla specyfikatorów konwersji zmiennoprzecinkowych, jeśli jest obecny, w przeciwnym razie musi być po prostu double.
- Dodano i domyślnie włączono "globskipdots", aby uniknąć "." i ".." przy rozszerzaniu tras...
W tym samym czasie została wydana biblioteka readline 8.2, która jest używana w bashu do organizowania edycji wiersza poleceń.
Na koniec należy wspomnieć, że ta wersja bash może być połączona z biblioteką Readline już zainstalowany zamiast prywatnej wersji w lib/readline, jeśli chcesz. Należy tylko wspomnieć, że wersja readline-8.1 i nowsze wersje mogą dostarczać wszystkie symbole, których wymaga bash-5.2, więc wcześniejsze wersje biblioteki Readline nie będą działać poprawnie.
Wreszcie dla tych, którzy chcą dowiedzieć się trochę więcej, a także dla tych, którzy chcą teraz uzyskać tę nową wersję, możesz odwiedzić poniższy link.
Jak zdobyć Bash 5.2 w systemie Linux?
W tym momencie Pozostaje tylko poczekać na włączenie tej nowej wersji Bash w repozytoriach dystrybucji Linuksa, ponieważ jest to najlepsza opcja.