Bash 5.2 został już wydany i zawiera nowości, poprawki i nie tylko

bash

Bash (Bourne Again SHell) to projekt GNU, kompletna implementacja specyfikacji powłoki POSIX

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.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: AB Internet Networks 2008 SL
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.