Bash 5.3 je tady s vylepšenou substitucí příkazů, novými proměnnými a podporou C23.

bash Linux

Před několika dny projekt GNU oznámil vydání nové verze Bash 5.3, populárního příkazového interpretu, který zůstává výchozí volbou ve většině linuxových distribucí.

Tato nová verze představuje téměř tři roky práce , během nichž byly provedeny nejen vylepšení jazyka a chování shellu, ale byly také zavedeny nové funkce, které jej sladí s moderními standardy, jako je C23. Je také doprovázena vydáním knihovny Readline 8.3.

Co je nového v Bashu 5.3

Jednou z nejvýznamnějších změn v Bash 5.3 je zavedení nových metod substituce příkazů: `${ command; }` a `${|command;}` . Ty umožňují zachytit výstup příkazu bez vytváření podřízeného procesu nebo použití pipeline, čímž se snižuje spotřeba zdrojů a zlepšuje výkon. Výsledek lze uložit přímo do proměnné `REPLY`, což zjednodušuje běžné úlohy zachycení výstupu.

Další novou funkcí zavedenou v GNU Bash 5.3 je nová proměnná GLOBSORT, která umožňuje definovat kritéria řazení při rozšiřování cest k souborům. Uživatelé mohou řadit podle názvu, velikosti, data úpravy a dalších údajů, s možnostmi vzestupného i sestupného pořadí.

Bash 5.3 navíc zavádí vylepšení několika vestavěných příkazů. Příkaz `compgen` nyní může ukládat vygenerované dotazy na dokončení do proměnné (`-V název_proměnné`), zatímco `read` nyní obsahuje volbu `-E` pro použití knihovny Readline s pravidly automatického dokončování Bashu. Vylepšen byl také `source`, který nyní podporuje `-p PATH` pro úpravu cesty vyhledávání.

Kromě toho byl příkaz umask upraven tak, aby plně odpovídal specifikaci POSIX , a funkce printf byla vylepšena o nové možnosti pro vícebajtové řetězce a alternativní reprezentaci znaků a řetězců.

Kompatibilita s C23 a sbohem K&R C

Jednou z nejvýznamnějších strukturálních změn je přijetí standardu C23 ve zdrojovém kódu Bash. V důsledku toho byla odstraněna podpora pro kompilaci v režimu „K&R C“ , což je technika sahající až do počátků jazyka C.

Na druhou stranu, Bash 5.3 zavádí několik načítatelných příkazů, jako například:

  • kV: generovat asociativní pole z dat ve formátu klíč-hodnota.
  • strptime: převádí data v textovém formátu na unixový čas.
  • fltexpr: umožňuje provádět aritmetické operace s plovoucí desetinnou čárkou a emulovat chování funkce let.

Kromě toho je přidána dynamická proměnná BASH_MONOSECONDS , která poskytuje monotónní čítač systémového času , užitečný pro úlohy, kde je časová stabilita kritická.

V režimu POSIX nyní Bash provádí porovnávání řetězců s operátory < a > a respektuje nastavení locale. Také sladí chování příkazů jako test, trap, wait a bind a úzce se drží požadavků standardu. Například `trap -P` umožňuje vypsat akci trap pro každý signál a `wait -n` zlepšuje zpracování ukončených procesů a substitucí.

Čtení řádku 8.3

Knihovna Readline, doplněk k Bashi, také prošla zásadní aktualizací. Mezi její nejvýznamnější nové funkce patří:

  • vyhledávání-ignorovat-velká-písmená: umožňuje vyhledávání v historii bez rozlišování velkých a malých písmen.
  • dokončení exportu: exportuje možná dokončení slova pro externí zpracování.
  • spustit-pojmenovaný-příkaz: Spouští příkazy, jejichž název je přečten ze standardního vstupu, což je užitečné pro skriptování a přizpůsobení.
  • Vylepšená podpora maker, nové konfigurovatelné proměnné a lepší zpracování rozměrů obrazovky po obnovení (SIGCONT).

Instalace a/nebo aktualizace Bash v Linuxu

Pro ty, kteří mají zájem o instalaci nebo aktualizaci Bash v Linuxu, by mělo být jasné, že to závisí na distribuci, kterou používáte. Níže vysvětlím, jak to provést v hlavních distribucích:

Na distribucích založených na Debianu (jako je Ubuntu, Linux Mint)

sudo apt install --only-upgrade bash

Tím se Bash aktualizuje na nejnovější verzi dostupnou v oficiálních repozitářích.

Pokud jej chcete nainstalovat od začátku (například na velmi minimalistický systém):

sudo apt install bash

Na distribucích založených na Red Hatu (jako je Fedora, CentOS, RHEL)

sudo dnf update bash Chcete-li nainstalovat Bash (pokud ještě není nainstalován):
sudo dnf install bash

V Arch Linuxu a jeho derivátech (například Manjaro)

sudo pacman -Syu bash

Tím se aktualizuje Bash spolu s celým systémem. Chcete-li nainstalovat pouze Bash:

sudo pacman -S bash

Přidat jako preferovaný zdroj v Googlu