Bash 5.3 är här med förbättrad kommandosubstitution, nya variabler och C23-stöd.

bash Linux

För några dagar sedan tillkännagav GNU-projektet lanseringen av den nya versionen av Bash 5.3, den populära kommandotolken som fortfarande är standardalternativet i de flesta Linuxdistributioner.

Denna nya version representerar nästan tre års arbete , under vilket förbättringar inte bara gjordes av språket och beteendet hos skalet, utan nya funktioner introducerades också för att anpassa det till moderna standarder som C23. Den åtföljs också av lanseringen av Readline 8.3-biblioteket.

Nyheter i Bash 5.3

En av de mest anmärkningsvärda förändringarna i Bash 5.3 är introduktionen av nya kommandosubstitutionsmetoder: `${ command; }` och `${|command;}` . Dessa låter dig fånga upp utdata från ett kommando utan att skapa en underprocess eller använda pipelines, vilket minskar resursförbrukningen och förbättrar prestandan. Resultatet kan lagras direkt i variabeln `REPLY`, vilket förenklar vanliga uppgifter för att fånga utdata.

En annan ny funktion som introducerats i GNU Bash 5.3 är den nya GLOBSORT-variabeln, som låter dig definiera sorteringskriterier när du expanderar filsökvägar. Användare kan sortera efter namn, storlek, ändringsdatum och mer, med alternativ för både stigande och fallande ordning.

Dessutom introducerar Bash 5.3 förbättringar av flera inbyggda kommandon. Kommandot `compgen` kan nu lagra genererade kompletteringar i en variabel (`-V varname`), medan `read` nu inkluderar alternativet `-E` för att använda Readline-biblioteket med Bashs autokompletteringsregler. `source` har också förbättrats och stöder nu `-p PATH` för att modifiera sökvägen.

Dessutom har umask-kommandot justerats för att helt följa POSIX-specifikationen , och printf har förbättrats med nya alternativ för multibytesträngar och alternativ tecken- och strängrepresentation.

C23-kompatibilitet och adjö till K&R C

En av de viktigaste strukturella förändringarna är införandet av C23-standarden i Bash-källkoden. Som ett resultat har stödet för kompilering i "K&R C"-läge , en teknik som går tillbaka till C-språkets tidiga dagar, tagits bort.

Å andra sidan introducerar Bash 5.3 flera laddningsbara kommandon som:

  • kv: för att generera associativa arrayer från data i nyckel-värde-format.
  • strptid: konverterar datum i textformat till Unix-tid.
  • fltexpr: låter dig utföra flyttalsberäkningar och emulera beteendet hos let.

Dessutom läggs den dynamiska variabeln BASH_MONOSECONDS till , vilken tillhandahåller en monoton systemtidsräknare , användbar för uppgifter där tidsstabilitet är avgörande.

I POSIX-läge utför Bash nu strängjämförelser med operatorerna < och > samtidigt som språkinställningarna respekteras. Det justerar också beteendet hos kommandon som test, trap, wait och bind, och följer noggrant standardens krav. Till exempel låter `trap -P` dig skriva ut trap-åtgärden för varje signal, och `wait -n` förbättrar hanteringen av avslutade processer och substitutioner.

Läslinje 8.3

Readline-biblioteket, ett komplement till Bash, fick också en större uppdatering. Bland dess mest anmärkningsvärda nya funktioner är:

  • sök-ignorera-versalertillåter sökningar i historiken utan att skiftläge känsligas.
  • export-slutföranden: exporterar de möjliga kompletteringarna av ett ord för extern bearbetning.
  • execute-named-kommando: Kör kommandon vars namn läses från standardindata, användbart för skript och anpassning.
  • Förbättrat makrostöd, nya konfigurerbara variabler och bättre hantering av skärmdimensioner efter ett CV (SIGCONT).

Installera och/eller uppdatera Bash på Linux

För er som är intresserade av att installera eller uppdatera Bash på Linux bör ni veta att det beror på vilken distribution ni använder. Nedan förklarar jag hur man gör det på huvuddistributionerna:

På Debian-baserade distributioner (som Ubuntu, Linux Mint)

sudo apt install --only-upgrade bash

Detta kommer att uppdatera Bash till den senaste versionen som finns tillgänglig i de officiella arkiven.

Om du vill installera det från grunden (till exempel på ett mycket minimalt system):

sudo apt installera bash

På Red Hat-baserade distributioner (som Fedora, CentOS, RHEL)

sudo dnf update bash För att installera Bash (om det inte redan är det):
sudo dnf installera bash

På Arch Linux och derivater (som Manjaro)

sudo pacman -Syu bash

Detta kommer att uppdatera Bash tillsammans med hela systemet. För att installera endast Bash:

sudo pacman -S bash

Lägg till som prioriterad källa i Google