Frage 101-128

a, b und c seien beliebige Kommandos. Welche der folgenden Aufrufe sind nicht syntaktisch korrekt? (Geben Sie alle zutreffenden Antworten an.)

  1. a | b | c

  2. a | a

  3. a | > /tmp/datei | b

  4. a |

  5. a & | b

  6. a | b &

LPI-Lernziel Ströme, Pipes und Umleitungen verwenden (103.4)

Hinter einem Pipe-Symbol (|) muss noch ein Kommando kommen, es darf nicht einfach einzeln am Ende der Kommandozeile stehen. Sie sollten also Antwort 4 angekreuzt haben, da dieser Aufruf nicht korrekt ist.

Außerdem sollte Ihnen Antwort 5 spanisch vorgekommen sein, da es nicht erlaubt ist, ein Teilkommando einer Pipeline in den Hintergrund zu schicken. Sie dürften allenfalls mit etwas wie a | b & (siehe Antwort 6) die komplette Pipeline im Hintergrund ausführen. Auch Antwort 5 ist also anzukreuzen.

Alle anderen Aufrufe sind dagegen absolut erlaubt. Antwort 1 ist sowieso reine Hausmannskost. Es ist auch nicht verboten, die Ausgabe eines Programms als Eingabe an eine andere Instanz desselben Programms zu leiten (Antwort 2), auch wenn uns das nicht fürchterlich sinnvoll vorkommt. Es ist aber nützlich, um in Beispielfragen Verwirrung zu stiften. Antwort 6 haben wir schon weiter oben die Absolution erteilt. Was Antwort 3 angeht: Sie können in Bourne-artigen Shells wie der Bash durchaus eine Ausgabeumleitung ohne eigentliches Kommando angeben, um die Zieldatei der Umleitung als leere Datei neu anzulegen -- etwa wenn Sie zu faul sind, touch zu tippen. (In der C-Shell funktioniert das übrigens nicht.) In der Mitte einer Pipeline hat das nicht wirklich etwas zu suchen, da an dieser Stelle der Datenfluss der Pipeline unterbrochen wird: Die Ausgabeumleitung kümmert sich nicht um die Ausgabe des vorigen Kommandos, da sie keine Standardeingabe hat, und da die Ausgabe ja in die Datei geht, kann auch das nachfolgende Kommando nichts von seiner Standardeingabe lesen. Trotzdem ist Antwort 3 rein formal korrekt; die Shell lehnt sie nicht ab, auch wenn bei der Ausführung möglicherweise merkwürdige Dinge passieren.

Noch kein Kommentar · Kommentar hinzufügen · RSS

Wichtig

LPI-Logo

Die LPI Academy ist keine offizielle Webseite des LPI!

Sponsor

Linup-Front-Logo

Die LPI Academy wird für die Community unterstützt von der Linup Front GmbH

A Django Site

Diese Seite

Version: 0 (Anselm)
22.8.2009 01:07:28

Benutzer

Nicht angemeldet

Kommentare

RSS