
For et par dage siden annoncerede GNU-projektet udgivelsen af den nye version af Bash 5.3, den populære kommandofortolker, der stadig er standardindstillingen i de fleste Linux-distributioner.
Denne nye version repræsenterer næsten tre års arbejde , hvor der ikke kun er blevet forbedret sproget og opførslen af skallen, men der er også blevet introduceret nye funktioner for at tilpasse den til moderne standarder som C23. Den ledsages også af udgivelsen af Readline 8.3-biblioteket.
Nyheder i Bash 5.3
En af de mest bemærkelsesværdige ændringer i Bash 5.3 er introduktionen af nye kommandosubstitutionsmetoder: `${ command; }` og `${|command;}` . Disse giver dig mulighed for at opfange outputtet fra en kommando uden at oprette en underproces eller bruge pipelines, hvilket reducerer ressourceforbruget og forbedrer ydeevnen. Resultatet kan gemmes direkte i `REPLY`-variablen, hvilket forenkler almindelige outputregistreringsopgaver.
En anden ny funktion introduceret i GNU Bash 5.3 er den nye GLOBSORT-variabel, som giver dig mulighed for at definere sorteringskriterierne, når du udvider filstier. Brugere kan sortere efter navn, størrelse, ændringsdato og mere, med muligheder for både stigende og faldende rækkefølge.
Derudover introducerer Bash 5.3 forbedringer til flere indbyggede kommandoer. `compgen`-kommandoen kan nu gemme genererede fuldførelser i en variabel (`-V varname`), mens `read` nu inkluderer `-E`-muligheden for at bruge Readline-biblioteket med Bashs autofuldførelsesregler. `source` er også blevet forbedret og understøtter nu `-p PATH` til at ændre søgestien.
Derudover er umask-kommandoen blevet justeret for fuldt ud at overholde POSIX-specifikationen , og printf er blevet forbedret med nye muligheder for multibyte-strenge og alternativ repræsentation af tegn og strenge.
C23-kompatibilitet og farvel til K&R C
En af de mest betydningsfulde strukturelle ændringer er indførelsen af C23-standarden i Bash-kildekoden. Som følge heraf er understøttelsen af "K&R C"-tilstandskompilering , en teknik der går tilbage til C-sprogets tidlige dage, blevet fjernet.
På den anden side introducerer Bash 5.3 adskillige indlæsbare kommandoer såsom:
- kv: at generere associative arrays fra data i nøgle-værdi-format.
- strptime: konverterer datoer i tekstformat til Unix-tid.
- fltexpr: giver dig mulighed for at udføre aritmetiske operationer med flydende komma, der emulerer let's opførsel.
Derudover tilføjes den dynamiske variabel BASH_MONOSECONDS , som giver en monotonisk systemtidstæller , der er nyttig til opgaver, hvor tidsmæssig stabilitet er kritisk.
I POSIX-tilstand udfører Bash nu strengsammenligninger med operatorerne < og >, samtidig med at de overholder lokale indstillinger. Den justerer også funktionsmåden af kommandoer som test, trap, wait og bind, så den nøje overholder standardens krav. For eksempel giver `trap -P` dig mulighed for at udskrive trap-handlingen for hvert signal, og `wait -n` forbedrer håndteringen af afsluttede processer og substitutioner.
Læselinje 8.3
Readline-biblioteket, en ledsager til Bash, har også fået en større opdatering. Blandt de mest bemærkelsesværdige nye funktioner er:
- søg-ignorer-store/små bogstavertillader søgninger i historikken, der ikke skelner mellem store og små bogstaver.
- eksport-fuldførelser: eksporterer de mulige fuldførelser af et ord til ekstern behandling.
- udfør-navngivet-kommando: Udfører kommandoer, hvis navn læses fra standardinput, hvilket er nyttigt til scripting og tilpasning.
- Forbedret makrounderstøttelse, nye konfigurerbare variabler og bedre håndtering af skærmdimensioner efter et CV (SIGCONT).
Installation og/eller opdatering af Bash på Linux
For dem, der er interesserede i at installere eller opdatere Bash på Linux, bør I vide, at det afhænger af den distribution, I bruger. Nedenfor vil jeg forklare, hvordan man gør det på de primære distributioner:
På Debian-baserede distributioner (såsom Ubuntu, Linux Mint)
sudo apt install --only-upgrade bash
Dette vil opdatere Bash til den nyeste version, der er tilgængelig i de officielle arkiver.
Hvis du vil installere det fra bunden (for eksempel på et meget minimalt system):
sudo apt install bash
På Red Hat-baserede distributioner (såsom Fedora, CentOS, RHEL)
sudo dnf update bash Sådan installerer du Bash (hvis det ikke allerede er gjort):
sudo dnf installere bash
På Arch Linux og derivater (såsom Manjaro)
sudo pacman -Syu bash
Dette vil opdatere Bash sammen med hele systemet. Sådan installerer du kun Bash:
sudo pacman -S bash