
Pred niekoľkými dňami projekt GNU oznámil vydanie novej verzie Bash 5.3, populárneho interpreta príkazov, ktorý zostáva predvolenou možnosťou vo väčšine linuxových distribúcií.
Táto nová verzia predstavuje takmer tri roky práce , počas ktorých sa vylepšil nielen jazyk a správanie shellu, ale boli zavedené aj nové funkcie, ktoré ho zosúladia s modernými štandardmi, ako je C23. Sprevádza ju aj vydanie knižnice Readline 8.3.
Čo je nové v Bash 5.3
Jednou z najvýznamnejších zmien v Bash 5.3 je zavedenie nových metód nahrádzania príkazov: `${ command; }` a `${|command;}` . Tieto metódy umožňujú zachytiť výstup príkazu bez vytvorenia podradeného procesu alebo použitia kanálov, čím sa znižuje spotreba zdrojov a zlepšuje výkon. Výsledok je možné uložiť priamo do premennej `REPLY`, čo zjednodušuje bežné úlohy zachytávania výstupu.
Ďalšou novou funkciou zavedenou v GNU Bash 5.3 je nová premenná GLOBSORT, ktorá umožňuje definovať kritériá triedenia pri rozbaľovaní ciest k súborom. Používatelia môžu triediť podľa názvu, veľkosti, dátumu úpravy a ďalších parametrov s možnosťami vzostupného aj zostupného poradia.
Okrem toho Bash 5.3 prináša vylepšenia niekoľkých vstavaných príkazov. Príkaz `compgen` teraz môže ukladať vygenerované dokončovania do premennej (`-V názov_premennej`), zatiaľ čo `read` teraz obsahuje možnosť `-E` na použitie knižnice Readline s pravidlami automatického dopĺňania Bashu. `source` bol tiež vylepšený a teraz podporuje `-p PATH` na úpravu cesty vyhľadávania.
Okrem toho bol príkaz umask upravený tak, aby plne vyhovoval špecifikácii POSIX , a funkcia printf bola vylepšená o nové možnosti pre viacbajtové reťazce a alternatívnu reprezentáciu znakov a reťazcov.
Kompatibilita s C23 a zbohom K&R C
Jednou z najvýznamnejších štrukturálnych zmien je prijatie štandardu C23 v zdrojovom kóde Bash. V dôsledku toho bola odstránená podpora pre kompiláciu v režime „K&R C“ , čo je technika, ktorá pochádza z raných dní jazyka C.
Na druhej strane, Bash 5.3 zavádza niekoľko načítateľných príkazov, ako napríklad:
- kV: generovať asociatívne polia z údajov vo formáte kľúč-hodnota.
- čas strptu: konvertuje dátumy v textovom formáte na čas systému Unix.
- fltexpr: umožňuje vykonávať aritmetické operácie s pohyblivou rádovou čiarkou, čím emuluje správanie funkcie let.
Okrem toho bola pridaná dynamická premenná BASH_MONOSECONDS , ktorá poskytuje monotónne počítadlo systémového času , užitočné pre úlohy, kde je časová stabilita kritická.
V režime POSIX teraz Bash vykonáva porovnávanie reťazcov s operátormi < a >, pričom rešpektuje nastavenia lokácie. Taktiež zosúlaďuje správanie príkazov ako test, trap, wait a bind, pričom dôsledne dodržiava požiadavky štandardu. Napríklad `trap -P` umožňuje vypísať akciu trap pre každý signál a `wait -n` zlepšuje spracovanie ukončených procesov a substitúcií.
Čítanie riadku 8.3
Knižnica Readline, ktorá je doplnkom k knižnici Bash, tiež prešla významnou aktualizáciou. Medzi jej najvýznamnejšie nové funkcie patria:
- vyhľadávanie-ignorovať-veľké-písmená: umožňuje vyhľadávanie v histórii bez rozlišovania malých a veľkých písmen.
- dokončenia exportu: exportuje možné dokončenia slova na externé spracovanie.
- vykonať-pomenovaný-príkaz: Vykonáva príkazy, ktorých názov sa číta zo štandardného vstupu, čo je užitočné pre skriptovanie a prispôsobovanie.
- Vylepšená podpora makier, nové konfigurovateľné premenné a lepšie spracovanie rozmerov obrazovky po obnovení (SIGCONT).
Inštalácia a/alebo aktualizácia Bashu v systéme Linux
Pre tých, ktorí majú záujem o inštaláciu alebo aktualizáciu Bash v Linuxe, by ste mali vedieť, že to závisí od distribúcie, ktorú používate. Nižšie vysvetlím, ako to urobiť v hlavných distribúciách:
Na distribúciách založených na Debiane (ako napríklad Ubuntu, Linux Mint)
sudo apt install --only-upgrade bash
Týmto sa Bash aktualizuje na najnovšiu verziu dostupnú v oficiálnych repozitároch.
Ak ho chcete nainštalovať od začiatku (napríklad na veľmi minimalistický systém):
sudo apt nainštalovať bash
Na distribúciách založených na Red Hat (ako napríklad Fedora, CentOS, RHEL)
sudo dnf update bash Ak chcete nainštalovať Bash (ak ešte nie je nainštalovaný):
sudo dnf nainštalovať bash
V Arch Linuxe a jeho derivátoch (ako napríklad Manjaro)
sudo pacman -Syu bash
Týmto sa aktualizuje Bash spolu s celým systémom. Ak chcete nainštalovať iba Bash:
sudo pacman -S bash