Bash 5.3 je tukaj z izboljšano zamenjavo ukazov, novimi spremenljivkami in podporo za C23.

bash Linux

Pred nekaj dnevi je projekt GNU napovedal izdajo nove razliÄŤice Bash 5.3, priljubljenega interpreterja ukazov, ki ostaja privzeta moĹľnost v veÄŤini distribucij Linuxa.

Ta nova različica predstavlja skoraj tri leta dela , v katerem niso bili izboljšani le jezik in delovanje lupine, temveč so bile uvedene tudi nove funkcije za uskladitev s sodobnimi standardi, kot je C23. Spremlja jo tudi izdaja knjižnice Readline 8.3.

Kaj je novega v Bashu 5.3

Ena najpomembnejših sprememb v Bash 5.3 je uvedba novih metod za zamenjavo ukazov: `${ command; }` in `${|command;}` . Ti metodi omogočata prestrezanje izhoda ukaza brez ustvarjanja podrejenega procesa ali uporabe cevovodov, s čimer se zmanjša poraba virov in izboljša zmogljivost. Rezultat je mogoče shraniti neposredno v spremenljivko `REPLY`, kar poenostavi običajna opravila zajemanja izhoda.

Druga nova funkcija, predstavljena v GNU Bash 5.3, je nova spremenljivka GLOBSORT, ki omogoča določanje meril razvrščanja pri razširjanju poti datotek. Uporabniki lahko razvrščajo po imenu, velikosti, datumu spremembe in drugih možnostih, z možnostmi za naraščajoči in padajoči vrstni red.

Poleg tega Bash 5.3 uvaja izboljšave več vgrajenih ukazov. Ukaz `compgen` lahko zdaj shrani generirana dopolnjevanja v spremenljivko (`-V imeSpremenke`), medtem ko `read` zdaj vključuje možnost `-E` za uporabo knjižnice Readline z Bashovimi pravili samodokončanja. Izboljšan je bil tudi `source`, ki zdaj podpira `-p PATH` za spreminjanje iskalne poti.

Poleg tega je bil ukaz umask prilagojen tako, da je v celoti skladen s specifikacijo POSIX , funkcija printf pa je bila izboljšana z novimi možnostmi za večbajtne nize in alternativno predstavitev znakov in nizov.

ZdruĹľljivost s C23 in slovo od K&R C

Ena najpomembnejših strukturnih sprememb je uporaba standarda C23 v izvorni kodi Bash. Posledično je bila odstranjena podpora za prevajanje v načinu "K&R C" , tehnika, ki sega v zgodnje dni jezika C.

Po drugi strani pa Bash 5.3 uvaja veÄŤ naloĹľljivih ukazov, kot so:

  • kV: za generiranje asociativnih nizov iz podatkov v formatu kljuÄŤ-vrednost.
  • ÄŤas strpta: pretvori datume v besedilni obliki v ÄŤas Unixa.
  • fltexpr: omogoÄŤa izvajanje aritmetiÄŤnih operacij s plavajoÄŤo vejico, ki posnemajo delovanje funkcije let.

Poleg tega je dodana dinamična spremenljivka BASH_MONOSECONDS , ki zagotavlja monotoni števec sistemskega časa , uporaben za naloge, kjer je časovna stabilnost ključnega pomena.

V načinu POSIX Bash zdaj izvaja primerjave nizov z operatorjema < in >, pri čemer upošteva nastavitve jezika. Prav tako usklajuje vedenje ukazov, kot so test, trap, wait in bind, pri čemer se natančno drži zahtev standarda. Na primer, `trap -P` vam omogoča, da izpišete dejanje lova za vsak signal, `wait -n` pa izboljša ravnanje s prekinjenimi procesi in zamenjavami.

Readline 8.3

Knjižnica Readline, spremljevalec knjižnice Bash, je prav tako prejela večjo posodobitev. Med njenimi najpomembnejšimi novimi funkcijami so:

  • iskanje-prezri-velike-ÄŤrke: omogoÄŤa iskanje v zgodovini brez razlikovanja med velikimi in malimi ÄŤrkami.
  • izvoz-dokonÄŤanja: izvozi moĹľne dopolnitve besede za zunanjo obdelavo.
  • izvesti-imenovani-ukaz: Izvaja ukaze, katerih ime se prebere iz standardnega vhoda, kar je uporabno za skriptanje in prilagajanje.
  • Izboljšana podpora za makre, nove nastavljive spremenljivke in boljše upravljanje dimenzij zaslona po nadaljevanju (SIGCONT).

Namestitev in/ali posodabljanje Basha v Linuxu

Za tiste, ki jih zanima namestitev ali posodabljanje programa Bash v Linuxu, morate vedeti, da je odvisno od distribucije, ki jo uporabljate. Spodaj bom razloĹľil, kako to storiti na glavnih distribucijah:

Na distribucijah, ki temeljijo na Debianu (kot sta Ubuntu, Linux Mint)

sudo apt namestitev --samo-nadgradnja bash

S tem boste posodobili Bash na najnovejšo različico, ki je na voljo v uradnih repozitorijih.

ÄŚe ga Ĺľelite namestiti iz niÄŤ (na primer na zelo minimalen sistem):

sudo apt namestite bash

Na distribucijah, ki temeljijo na Red Hatu (kot so Fedora, CentOS, RHEL)

sudo dnf update bash Če želite namestiti Bash (če ga še nimate):
sudo dnf namestite bash

V Arch Linuxu in derivatih (kot je Manjaro)

sudo pacman -Syu bash

S tem se bo posodobil Bash skupaj s celotnim sistemom. ÄŚe Ĺľelite namestiti samo Bash:

sudo pacman -S bash

Dodaj kot prednostni vir v Googlu