przystajnik

Powłóczysta ekspansja powłoki Bash 5.0

Witaj dumny użytkownikowi powłoki Bash. Tak, to o Pani i Panu mówię. Nawet jeśli nie wiecie co to jest powłoka, a tym bardziej Bash. Ale w waszym Linuksie połowa rzeczy dzieje się właśnie dzięki temu „wynalazkowi”, który doczekał się wydania oznaczonego numerem 5.0.

Bourne-Again Shell jako rozwinięcie powłoki sh sprawdził się wręcz wybitnie. Co więcej, zapożyczenia z Korna i csh wzmogły tylko jego kreatywny potencjał. Nie potrafić sklecić choćby prostego skryptu w Bashu w dzisiejszych czasach to jak nie znać funkcji bramek logicznych w latach 80.

Wydanie Bash 5.0 to kolejny krok milowy w historii tej powłoki. Wersja oprócz poprawek wnosi bowiem kilka kluczowych rozwiązań. Dla niektórych osób programowanie w Bashu nie będzie już tym samym. Lista zmian to niemal artystyczny monolog z mrugnięciami w kierunku użytkowników. Ciężko nawet jednoznacznie napisać, co takiego się zmieniło. To tak, jakby po 10 latach zorientować się, że z mizernej sadzonki przed oknami naszego domu wyrosło piękne, sięgające niebios drzewo.

Na pierwszy plan wybijają się jednak nowe zmienne środowiskowe. BASH_ARGV0, EPOCHSECONDS oraz EPOCHREALTIME. Pojawiła się możliwość usuwania zakresu z history, samo history przyjmuje też parametry ujemne (co oznacza – od końca listy). Odpowiednia opcja umożliwia dziedziczenie przez zmienne lokalne wartości wcześniejszej zmiennej o tej samej nazwie. Kolejna opcja reguluje kwestie tablic asocjacyjnych i ich indeksu (przydatne gdy są używane w obliczeniach arytmetycznych). Opcja globasciiranges jest włączona domyślnie. Ciekawostką pozostaje też domyślnie wyłączona, nieudokumentowana opcja pozwalająca na wysyłanie historii poczynań w terminalu do sysloga.

Nowe wydanie wprowadza jednak też niewielkie niekompatybilności z poprzednim Bashem 4.4. Chodzi tutaj głównie o ustalanie zmiennych nameref. Zmienne BASH_ARGC oraz BASH_ARGV są ustawiane tylko w trybie debuggingu – wcześniej powodowały problemy z wydajnością kiedy skrypty przekazywały sobie duże ilości zmienny i argumentów. Bash 5.0 dogaduje się poprawnie tylko z bibliotekami Readline w wersji 8.0.

Na nową wersję powłoki zaczekamy zapewne do następnego wydania naszej ulubionej dystrybucji. Obecnie fani mogą ją testować po samodzielnej kompilacji.

Post navigation

2 comments for “Powłóczysta ekspansja powłoki Bash 5.0

  1. 10 stycznia, 2019 at 9:28

    Ciekaw jestem, czy doczekamy kiedykolwiek w bashu wsparcia dla standardu folderów XDG, innymi słowy: czy doczekamy momentu, gdy twórcy basha przestaną twierdzić, że XDG jest tylko dla Linuksa i tylko dla GUI.

  2. 10 stycznia, 2019 at 9:28

    Ciekaw jestem, czy doczekamy kiedykolwiek w bashu wsparcia dla standardu folderów XDG, innymi słowy: czy doczekamy momentu, gdy twórcy basha przestaną twierdzić, że XDG jest tylko dla Linuksa i tylko dla GUI.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Translate »