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  »  2010  »  04  »  Stets zu Diensten  

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

© Thomas Max Müller, Pixelio.de

Was der User tippen will - die Bash ahnt es dank Perl im Vorhinein

Stets zu Diensten

von Michael Schilli
Erschienen im Linux-Magazin 2010/04

Der Complete-Mechanismus der Shell vervollständigt angefangene Eingaben, sobald der User die Tabulator- taste drückt. Ein Perl-Skript erweitert die Funktion maßgeschneidert.

Die [Tab]-Taste hängt oft schon ziemlich ausgeleiert in der Tastatur, so beliebt ist bei vielen das Angebot der Bash-Shell, halb eingegebene Bezeichnungen für Befehle, Verzeichnisse und Dateien auf intelligente Weise zu vervollständigen.

Standardrepertoire

Das Standardrepertoire der Bash-Komplettierung zeigt Abbildung 1. Drückt der Benutzer gleich nach der auf der Kom mandozeile eingegebenen Tastenfolge [L]+[S]+[M] die [Tab]-Taste, vervollständigt die Bash das sofort zu »lsmod«, dem Kommando für die Abfrage installierter Kernelmodule. Warum? Das eingegebene Buchstabentrio stand am Anfang einer Kommandozeile, weshalb es sich um einen ausführbaren Befehl handeln muss. Im eingestellten Pfad (»$PATH«) fand sich kein anderer Befehl mit diesen drei Anfangsbuchstaben, also tat die Bash das einzig Richtige.

Auf der Kommandozeile Nummer 2 in Abbildung 1 gab der User hingegen nur zwei Buchstaben vor und tippte nach »ls« auf die [Tab]-Taste. Auch hier kommt nur ein Befehl und keine normale Datei in Frage. Aber die Vorgabe ist nicht eindeutig, denn im Pfad befinden sich Dutzende von Kommandos, die mit »ls« beginnen. Also schweigt die Bash still und wartet, bis der Benutzer noch ein weiteres Mal auf [Tab] drückt, woraufhin sie dann eine kompakte Auflistung aller möglichen Ergebnisse präsentiert und den User weitere Buchstaben eingeben lässt, um die Anzahl der Treffer einzuschränken.

1731 Möglichkeiten

Erfolgt der [Tab]-Tastendruck im zweiten Wort einer Zeile oder danach wie in der vierten Kommandozeile in Abbildung 1, folgert der Ergänzungsmechanismus, dass der User dem Kommando »ls« eine Datei zugesellen will. Allerdings passen darauf sehr viele, sodass die Bash nach einem einmaligen [Tab] stillschweigt und nach einem Doppeldruck wie in Zeile 5 erst einmal nachfragt, ob sie wirklich alle 1731 Möglichkeiten anzeigen soll. Gibt der User mehr Buchstaben vor wie in den Zeilen 6 und 7 und schränkt damit die Lösungen ein, folgt auf einen Doppel-[Tab] wieder eine Auflistung sinnvoller Ergänzungen. Erst wenn die Wahl eindeutig ist, komplettiert die Bash die Zeile.


Abbildung 1: Normalerweise vervollständigt die Bash Kommandos und Namen zu bearbeitender Dateien, sobald der User die [Tab]-Taste drückt.

Auch Teilergänzung kommt vor: Gibt der User wie in Kommandozeile 8 »/etc/up« vor und drückt einmal auf [Tab], vervollständigt die Shell sofort auf »/etc/update«, obwohl, wie sich hinterher herausstellt, es mit »update-manager« und »update-notifier« zwei Möglichkeiten gibt. Die Teilkomplettierung war jedoch hilfreich, um den Pfad bis zum Scheideweg abzukürzen.

Das auf der Bash-Manualseite (»man bash«) unter »Programmable Com­ letion« dokumentierte »complete«-Kommando erlaubt es dem programmierwütigen Shellanwender, das Standardrepertoire gehörig aufzupeppen. Das Projekt Bash Completion [2] bietet eine ganze Sammlung von Ergänzungsregeln zum Download an, die der Nutzer dann in der lokalen Datei ».bashrc« einbindet.

Dieses Gehirnimplantat für die Bash bringt ihr kommandospezifische Regeln bei und vervollständigt Kommandooptionen. Gibt der User zum Beispiel die Zeichenfolge »git com« ein und drückt die [Tab]-Taste, vervollständigt der Mechanismus zu »git commit«, da dies das einzige verfügbare Subkommando des Versionskontrollwerkzeugs ist, das mit »com« anfängt. Weitere Erläuterungen der Complete-Funktion finden sich in kurzen Abschnitten in Büchern zum Thema Bash, etwa in [4] und [5].

Doch während die Skriptsammlung auf [2] Bash-Funktionen baut, wissen erfahrene Perl-Programmierer, dass Shellskripte zwar schnell von der Hand gehen, sich mit steigender Komplexität jedoch oft als Sackgasse erweisen. Schuld sind die begrenzten Kapselungsmöglichkeiten der Shell. Manch ein Shellskript hätte sein Programmierer besser gleich in einer vollständigen Skriptsprache implementiert, denn früher oder später wird es eh umgeschrieben, sobald es über einen Prototyp hinauswächst.

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
Überall Projekte Skript managt Git-Repositories mit Metaverzeichnis
Wer liefert wann? Perl führt Buch über Online-Bestellungen
Vom Thron gestürzt Die besten Lesereinsendungen des Programmierwettbewerbs
Laufzeit-Tacho Profiler identifizieren Flaschenhälse in Perl-Programmen
Babylon zu fünft Populäre Programmiersprachen treten gegeneinander an
Tooltipps Werkzeuge im Kurztest
Whitepaper
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)
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele (Folge 2)

Der zweite Teil des Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele White Papers beleuchtet anhand weiterer ausgewählter Case Studies die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.

Download PDF (Registrierung erforderlich)
Kommentare (0)