
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