
Efter nästan tre års utveckling är Bash 5.3 nu här – med nya kraftfulla funktioner för skriptning, förbättrad tab-komplettering och stöd för modern C-standard. Den nya versionen följer ett års arbete med beta- och testversioner, och markerar en viktig uppdatering för det mest använda skalet i Unix-liknande system.
Kommandon i nuvarande skal utan barnprocess
Den största nyheten är två nya former av kommandosubstitution:${ command; }
och ${|command;}
Till skillnad från den traditionella syntaxen $(...)
körs dessa kommandon direkt i det aktuella skalet, inte i en separat process. Det gör att skript kan hämta utdata (eller få kommandots resultat direkt i variabeln REPLY
) utan den vanliga overheaden från fork och rör. Detta är särskilt användbart i prestandakänsliga miljöer, som täta loopar eller inbyggda system.
Flexibel sortering med GLOBSORT
En ny variabel, GLOBSORT
, ger användaren kontroll över hur sökvägsuttryck (globbing) sorteras. Man kan nu välja att sortera efter namn, filstorlek, åtkomst- eller ändringstid, eller inte sortera alls. Dessutom kan man styra om sorteringen ska vara stigande eller fallande.
Förbättrad komplettering och interaktiv inmatning
För dig som använder tab-komplettering är compgen -V
ett välkommet tillskott. Det låter dig skapa och lagra kompletteringsförslag direkt i en variabel. Även read -E
har förbättrats och använder nu Readlines programmerbara komplettering, vilket gör interaktiv input mer kraftfull.
Med source -p SÖKVÄG
kan man nu inkludera (”sourca”) andra skriptfiler från en specifik sökväg istället för att förlita sig på det globala $PATH
. Det ökar kontrollen och gör det lättare att arbeta med skript i isolerade miljöer.
Modernisering av kodbasen
Bash 5.3 har uppdaterats för att följa den nya C23-standarden, vilket innebär bättre framtidssäkring och modernare kod. Som en bieffekt kan Bash inte längre kompileras med mycket gamla (K&R-baserade) C-kompilatorer – en förändring som främst påverkar historiska verktygskedjor.
Samtidig lansering av Readline 8.3
Tillsammans med Bash 5.3 släpptes även Readline 8.3, det separata biblioteket som hanterar kommandoradsinmatning. Den nya versionen innehåller stöd för skiftlägesokänslig sökning (search-ignore-case
), ett anropbart execute-named-command
samt en funktion för att exportera kompletteringsdata till andra program (export-completions
).
https://linuxiac.com/bash-shell-5-3-released-with-new-command-substitution
Faktaruta: Vad är Bash?
Bash (Bourne Again SHell) är ett kommandoradsskal och skriptspråk som utvecklats för GNU-projektet som en fri ersättning för det ursprungliga Bourne-skalet (/bin/sh
).
Det används som standardskal i de flesta Linux-distributioner och många andra Unix-liknande system, inklusive macOS (tidigare versioner). Bash fungerar både som en interaktiv kommandotolk och som en kraftfull miljö för att skriva skript och automatisera uppgifter.
Utveckling och historia:
Bash utvecklades av Brian Fox år 1989 och underhålls idag av Chet Ramey. Det är en central del av GNU-projektet och är licensierat under GNU General Public License (GPL).
Nyckelfunktioner:
- Kommandotolkning och interaktivt arbete
- Variabler, funktioner och kontrollflöden
- Tab-komplettering och historik
- Skriptkörning och automation
- Stöd för olika former av kommandosubstitution
Senaste version: Bash 5.3 (släppt 2025), med stöd för moderna C-standarder och förbättrad prestanda i skriptmiljöer.
Ladda ner Bash:
Du kan ladda ner Bash från GNU-projektets officiella sida:
https://ftp.gnu.org/gnu/bash/
Källkoden är tillgänglig i .tar.gz-format och kan kompileras på de flesta system.