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.

1 Kommentar · Kommentar hinzufügen · RSS

Fehlerteufel

Leo Neikes (Gast) · 2. Februar 2012, 14:04

Frage 101-128: hier scheint der Wurm drin zu sein; eine von mir als nicht richtig (wie gefragt) markierte Antwort (Umlenkung in der Mitte der pipe) ist korrekt, aber mit :-( als Fehler markiert. Die Reihenfolgen der Antworten in Aufgabe und Erklärung sind unterschiedlich, ist das der Grund? Außerdem habe ich 'a | ' ausprobiert: das funktioniert, man kann interaktiv das Programm angeben, das die pipe als Eingabe kriegt, etwa:

" ls . |

less " (gibt mit less das listing aus)

Frage nochmal checken! Gruß

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