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

bash Linux

Några dagar sen GNU-projektet tillkännagav lanseringen av den nya versionen av Bash 5.3, den populära kommandotolken som fortfarande är standardvalet i de flesta Linuxdistributioner.

Denna nya version representerar nästan tre års arbete, vilket inte bara implementerar förbättringar av skalets språk och beteende, utan också introducerar nya funktioner som anpassar det till moderna standarder som C23. Det kommer också med 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 Introduktion av nya former av kommandosubstitution: ${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 REPLY-variabeln, vilket förenklar vanliga uppgifter för att samla in utdata.

En annan ny funktion som introducerades i GNU Bash 5.3 är ny variabel GLOBSORT tillåta definiera sorteringsordningen 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 lägger till alternativet -E för att använda Readline-biblioteket med Bashs autokompletteringsregler. Källkoden har också förbättrats och stöder nu -p PATH för att ändra sökvägen.

Likaså kommandot umask har justerats för att helt följa POSIX-specifikationen, och printf har förbättrats med nya alternativ för multibyte-strängar och alternativ representation av tecken och strängar.

C23-kompatibilitet och adjö till K&R C

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

Å 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, Den dynamiska variabeln BASH_MONOSECONDS läggs tillAtt ger en monotonisk räknare av systemtiden, användbart för uppgifter där tidsmässig stabilitet är avgörande.

I POSIX-läge utför Bash nu strängjämförelser med operatorerna < och >. med respekt för de regionala inställningarna. Den justerar även 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 ersättningar.

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