Bash 5.0 mit neuen Funktionen veröffentlicht

Die Mailingliste bestätigte kürzlich die Veröffentlichung von Bash-5.0. Und es ist aufregend zu wissen, dass es mit neuen Funktionen und variablen Funktionen ausgestattet ist.

Wenn Sie Bash 4.4.XX verwendet haben, werden Sie die fünfte Hauptversion von Bash auf jeden Fall lieben.

Die fünfte Version konzentriert sich auf neue Shell-Variablen und viele wichtige Fehlerkorrekturen mit einer Überarbeitung. Außerdem werden einige neue Funktionen sowie einige inkompatible Änderungen zwischen bash-4.4 und bash-5.0 eingeführt.

Was ist mit den neuen Funktionen?

In der Mailingliste wird der in dieser neuen Version behobene Fehler erläutert:

Diese Version behebt mehrere ausstehende Fehler in Bash-4.4 und führt mehrere neue Funktionen ein. Die wichtigsten Fehlerkorrekturen sind eine Überarbeitung der Auflösung von nameref-Variablen und eine Reihe potenzieller Speicherfehler außerhalb der Grenzen, die durch Fuzzing entdeckt wurden. Es gibt eine Reihe von Änderungen an der Erweiterung von [E-Mail-geschützt] und $ * in verschiedenen Kontexten, in denen keine Wortteilung durchgeführt wird, um einer Posix-Standardinterpretation zu entsprechen, sowie zusätzliche Änderungen, um Eckfälle für die Posix-Konformität zu lösen.

Es werden auch einige neue Funktionen eingeführt. Gemäß der Release-Information sind dies die bemerkenswertesten neuen Funktionen mehrerer neuer Shell-Variablen:

Die Werte BASH_ARGV0, EPOCHSECONDS und EPOCHREALTIME. Mit der integrierten Funktion "Verlauf" können Bereiche von Verlaufseinträgen entfernt und negative Argumente als Offsets am Ende der Verlaufsliste interpretiert werden. Es gibt eine Option, mit der lokale Variablen den Wert einer Variablen mit demselben Namen in einem vorhergehenden Bereich erben können. Es gibt eine neue Shell-Option, bei deren Aktivierung die Shell versucht, assoziative Array-Indizes nur einmal zu erweitern (dies ist ein Problem, wenn sie in arithmetischen Ausdrücken verwendet werden). Die Shell-Option 'globasciiranges' ist jetzt standardmäßig aktiviert. Es kann zur Konfigurationszeit standardmäßig deaktiviert werden.

Was ist mit den Änderungen zwischen Bash-4.4 und Bash-5.0?

Das Update-Protokoll erwähnt die inkompatiblen Änderungen und den unterstützten Readline-Versionsverlauf. Hier ist, was es gesagt hat:

Es gibt einige inkompatible Änderungen zwischen Bash-4.4 und Bash-5.0. Die Änderungen an der Auflösung von nameref-Variablen haben zur Folge, dass sich einige Verwendungen von namerefs anders verhalten, obwohl ich versucht habe, die Kompatibilitätsprobleme zu minimieren. Standardmäßig setzt die Shell BASH_ARGC und BASH_ARGV beim Start nur, wenn der erweiterte Debugging-Modus aktiviert ist. Es war ein Versehen, dass es bedingungslos gesetzt wurde und zu Leistungsproblemen führte, wenn Skripten eine große Anzahl von Argumenten übergeben wurden.

Bash kann auf Wunsch mit einer bereits installierten Readline-Bibliothek und nicht mit der privaten Version in lib / readline verknüpft werden. Nur readline-8.0 und spätere Versionen können alle für bash-5.0 erforderlichen Symbole bereitstellen. frühere Versionen der Readline-Bibliothek funktionieren nicht richtig.

Ich glaube, einige der hinzugefügten Funktionen / Variablen sind sehr nützlich. Einige meiner Favoriten sind:

  • Es gibt eine neue (standardmäßig deaktivierte, undokumentierte) Shell-Option, mit der das Senden des Verlaufs an Syslog zur Laufzeit aktiviert und deaktiviert werden kann.
  • Die Shell setzt BASH_ARGC und BASH_ARGV nicht automatisch beim Start, es sei denn, sie befindet sich im Debugging-Modus, wie in der Dokumentation immer angegeben, sondern erstellt sie dynamisch, wenn ein Skript auf der obersten Ebene auf sie verweist, ohne den Debugging-Modus aktiviert zu haben.
  • Der 'Verlauf' kann jetzt Bereiche von Verlaufseinträgen mit '-d Start-Ende' löschen.
  • Wenn eine nicht interaktive Shell mit aktivierter Jobsteuerung feststellt, dass ein Vordergrundjob aufgrund von SIGINT abgestürzt ist, verhält sie sich so, als hätte sie den SIGINT empfangen.
  • BASH_ARGV0: Eine neue Variable, die auf $ 0 erweitert wird und bei der Zuweisung $ 0 festlegt.

Informationen zur vollständigen Liste der Änderungen und Funktionen finden Sie in der Mailing-Liste.

Einpacken

Sie können Ihre aktuelle Bash-Version mit folgendem Befehl überprüfen:

 bash --version 

Es ist wahrscheinlicher, dass Sie Bash 4.4 installiert haben. Wenn Sie die neue Version erhalten möchten, sollten Sie darauf warten, dass Ihre Distribution sie bereitstellt.

Was halten Sie von Bash-5.0? Verwenden Sie eine Alternative zu Bash? Wenn ja, würde dieses Update Ihre Meinung ändern?

Teilen Sie uns Ihre Meinung in den Kommentaren unten mit.

Empfohlen

MariaDB: Die Software, die Open Source speichern oder brechen könnte
2019
Installieren und Verwenden von MEGA Cloud Storage unter Linux
2019
openSUSE ist jetzt auf dem Windows-Subsystem für Linux verfügbar
2019