Open Source im professionellen Einsatz

Newsletter abonnieren
Seite durchsuchen

HEFTARCHIV | NEWS | E-BIBLIOTHEK | VIDEO | BLOGS | WHITEPAPER | EVENTS | ACADEMY | ABO | SHOP

user friendly

  Home  »  Heft & Abo  »  Heftarchiv  »  2009  »  06  »  Aufpoliert  

RSS-Feed der aktuellen News von Linux-Magazin Online Folgen Sie Linux-Magazin Online auf Twitter
Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark

© Georg Dieter, Fotolia.com

Neue Funktionen in der Bash-Version 4

Aufpoliert

von Bernhard Bablok, Nils Magnus
Erschienen im Linux-Magazin 2009/06

Die Bash begleitet Linux seit seinen Kindertagen. Trotz ihres biblischen Alters und ihres hohen Reifegrads feilen die Entwickler immer noch an der Shell. Kürzlich veröffentlichten sie Version 4.0. Das Linux-Magazin schaut sich an, ob ein Umstieg lohnt.

Die Bash [1] ist trotz leistungsstarker Konkurrenz, etwa durch die Zsh [2], der Platzhirsch auf der Linux-Konsole. Aber nicht nur interaktiv, sondern auch als überall verfügbare Skriptsprache setzen Anwender sie gerne ein. Die Bash gehört also zum Rückgrat eines funktionierenden Linux-Systems, ein Upgrade mit seinen Vor- und Nachteilen will deshalb gut überlegt sein.

Schon durchschnittlich komplexe Programmpakete geben sich sehr sperrig, wenn es um einen Wechsel auf eine höhere Hauptversion geht. Neben dem eigentlichen Programmpaket muss der Admin oft noch ganze Sammlungen von Bibliotheken aktualisieren. Das schlanke Paket der neuen Bash hängt glücklicherweise nur von Version 6 der Readline-Bibliothek ab. Unter Open Suse ist die Installation besonders einfach, Systemverwalter ersetzen nur die vorhandenen Pakete »bash« und »bash-doc« durch die neue Version und installieren parallel zur »libreadline5« die »libreadline6«. Passende Pakete gibt es im Build Service [3]. Debian bietet ein Paket im Experimental-Zweig an [4]. Anwender anderer Distributionen warten noch etwas oder bauen sich das Paket aus den Quellen selbst.

Kompatibilität

Erster Anlaufpunkt, um die Kompatibilität zu prüfen, ist die Datei »COMPAT« im Dokumentationsverzeichnis. Sie listet acht Punkte auf, die allerdings nicht grundlegender Natur, sondern hauptsächlich der Posix-Kompatibilität geschuldet sind. Ob dies im Einzelnen zu Problemen führt, muss jeder Anwender selbst testen.

Ein weiterer wichtiger Test für die Kompatibilität ist das Init-System mit seinen vielen Start- und Stop-Skripten. Hier gibt es Probleme in Open Suses Skript »/etc/init.d/network«. Die Funktion »check_firewall()« gibt negative Werte zurück, was aus zwei Gründen unsinnig ist: Einerseits sollte der Wertebereich von Returncodes zwischen 0 und 255 liegen, andererseits wertet das Skript den genauen Wert der Rückgabe sowieso nicht aus. Ein Fehler, der also auf Seiten von Open Suse liegt.

Der Parser der Bash 3.2 nimmt das nicht so genau. Unter der Bash 4 jedoch führen die negativen Returncodes zu Fehlern. Als Folge fährt Open Suse die Firewall immer hoch, auch wenn die Systemkonfiguration anderes vorsieht. Solch ein Fehler könnte gar zu Problemen auf anderen Systemen führen, die der Admin gar nicht verändert hat.

Insofern gilt es bei produktiven Systemen, ein Upgrade wohl zu überlegen. Die großen Distributionen werden die neue Version über ihre Community-Distributionen unter die Leute bringen. Bleibt zu hoffen, dass die Anwender solche beschriebenen Fehler schnell finden und beheben.

Auf Entwicklersystemen sieht die Sache anders aus: Hier ist das Produktionsrisiko kleiner. Programmierer möchten das eine oder andere Goodie so schnell wie möglich mitnehmen, etwa die neuen Möglichkeiten der Kommandozeile. Eine Auswahl der Neuerungen zeigt Tabelle 1, eine komplette Aufzählung steht in der Datei »NEWS« der Dokumentation.

Tabelle 1: Auswahl
wichtiger Neuerungen

 

Änderung

Beschreibung

Substrings

Erweiterung für Positionsparameter unterstützt den
Offset 0

Prozess-ID

Aktuelle PID der Shell steht in »BASHPID«

»autocd«

Erlaubt die schnelle Navigation per Eingabe von
Verzeichnisnamen

»checkjobs«

Prüft und berichtet über aktive oder angehaltene Jobs
beim Exit

»read«

Weist auch teilweise erhaltenen Input den Variablen zu und
behält diese Werte, auch wenn das Kommando das Timelimit
überschreitet

»mapfile«

Vereinfacht das Verarbeiten von Dateien

»command_not_found_handle«

Bash 4 ruft diese Shellfunktion auf, wenn sie ein Kommando
nicht findet

»globstar«

Sucht mit »**« rekursiv über
Verzeichnissen

Brace

Erweiterung erzeugt Wertelisten mit führenden Nullen

Standardfehlerkanal

Statt »2>&1 1>Datei« erlaubt Bash 4
einfacher »&>> Datei«

Standardfehlerkanal

Analog ersetzt »|&« jetzt »2>&1

»case«

Für das Ende von Alternativen erlaubt Bash 4 außer
»;;« jetzt zusätzlich »;&« und
»;;&«. Im ersten Fall werden bedingungslos auch die
Anweisungen der nächsten Gruppe verarbeitet, im zweiten Fall
erfolgt zusätzlich die Prüfung und gegebenenfalls die
Verarbeitung der nächsten Case-Gruppe.

Variablen-Expansion

Operatoren »^« und »,« ändern die
Groß- oder Kleinschreibung

Automatische Wandlung

»declare -u« sowie »declare -l« sorgen
dafür, bei Wertzuweisungen automatisch in Groß- oder
Kleinbuchstaben umzuwandeln

Assoziative Arrays

Indices dürfen Strings sein:
»$alter["joe"]«

»coproc«

Erzeugt asynchrone Prozesse

Select

Der Aufruf »read -t 0 -u fd« prüft, ob
Filedeskriptor »fd« Daten bereitstellt

Auf der Kommandozeile

Wer regelmäßig die Textkonsole nutzt, wird sich über einige unscheinbare, aber umso nützlichere Erweiterungen freuen: So expandiert die Zeichenfolge »**« zu einer Liste von Dateien und den Pfaden dorthin ab dem aktuellen Arbeitsverzeichnis, also ähnlich dem externen Kommando »find«. Allerdings muss der Anwender vorher mittels »shopt -s globstar« das Feature aktivieren. Eines der größten Mysterien der Bourne Shell, nämlich die Ausgabeumleitung der Standardfehlermeldungen, lösen die Entwickler nun etwas anwenderfreundlicher: Statt des Mantra »2>&1 1>Datei« dürfen Anwender nun »&>> Datei« verwenden, um sowohl die Fehler wie die normale Ausgabe in eine Datei zu lenken. Noch praktischer ist das analoge Kürzel »|&«, das in Pipes gilt.

Sie können diesen Artikel als PDF für 99 Cent kaufen. Klicken Sie dazu einfach auf eine der beiden Bezahloptionen Paypal oder ClickandBuy.


Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark
Ähnliche Artikel
Parallelarbeit Bash-Skripte, die Multicore-Prozessoren auslasten
Vom Thron gestürzt Die besten Lesereinsendungen des Programmierwettbewerbs
Schlangenbeschwörer Paketwarteschlangen im Userspace bearbeiten
Wissenstransfer Aussichtsreiche Würfelkandidaten unter der Lupe
Bash Bashing Shellskripte aus der Stümper-Liga - Folge 1
Tooltipps Werkzeuge im Kurztest
Whitepaper
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele

Über die letzten Jahre hinweg haben sich Open Source Lösungen als fester Bestandteil des gesamten Datenintegrationsmarktes etabliert. Viele Unternehmen haben bereits das Open Source Modell für Ihre Datenintegrationsprojekte aufgegriffen. Das vorliegende White Paper illustriert anhand ausgewählter Fallstudien und Anwendungsbeispiele die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.

Download PDF (Registrierung erforderlich)
The Role of Open Source in Data Integration

Obwohl in den letzten Jahren viele technische Fortschritte erzielt werden konnten, verfügen die meisten Datenintegrationsprozesse nach wie vor nur über eine sehr begrenzte Automatisierung. Das vorliegende White Paper von dem Industry Analyst Mark Madson wird zunächst ein grundlegendes Verständnis von Daten Integration vermitteln, die Vorzüge von Open Source Lösungen für Daten Integration erläutern und Ihnen professionelle Empfehlungen geben, damit Sie Ihre Integrationsjobs noch einfacher und produktiver gestalten können.

Download PDF (Registrierung erforderlich)
Kommentare (0)