SelfLinux Grundlagen Einführung in die Bourne Again Shell (bash) Abschnitt 5 | SelfLinux-0.13.0

| Einführung in die Bourne Again Shell (bash) | Autor Formatierung GPL

#### 5 Kommandosubstitution

Wie wir bereits an anderer Stelle gesehen haben, bearbeitet die Shell eine gegebene Kommandozeile in vielfacher Weise. Zu den Bearbeitungsschritten zählen diverse Substitutionen, wie beispielsweise die Ersetzung von Wildcards durch entsprechende Datei- oder Verzeichnisnamen, die Ersetzung von Aliasen durch ihren Wert oder auch die Ersetzung von Variablen, die wir später noch betrachten werden. Mit Kommandosubstitution bezeichnet man einen Mechanismus, der zur Ersetzung eines Kommandos durch dessen Standardausgabe führt. Das zu ersetzende Kommando wird also aus der Kommandozeile entfernt. Danach wird an seiner Stelle die Standardausgabe des entfernten Kommandos eingefügt. Hier ein Beispiel:

user@linux ~$ echo Im Verzeichnis existieren `ls | wc -w` Einträge Im Verzeichnis existieren 22 Einträge

Das Kommando echo gibt einfach auf die Standardausgabe aus, was es als Argumente erhält. Wie zu sehen, ist die Pipeline ls | wc -w in den Text eingefügt, umgeben von sogenannten Backticks oder (umständlicher) linksgeneigten Hochkommata. Die Backticks bewirken, dass vor dem Aufruf von echo das eingeschlossene Kommando ausgeführt und seine Ausgabe an Stelle des Kommandos eingefügt wird. Hier der Beweis:

user@linux ~$ ls | wc -w 22

In der bash können Sie noch eine zweite Schreibweise verwenden:

user@linux ~$ echo Im Verzeichnis existieren $(ls | wc -w) Einträge Im Verzeichnis existieren 22 Einträge

Das Kommando ist in runde Klammern eingefaßt, denen ein Dollarzeichen voransteht. Das Ergebnis ist dasselbe.