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.

Translate »