Listen

Eine oder mehrere Pipelines (und damit auch einzelne Kommandos) können zu einer Liste zusammengefaßt werden, indem hinter jede Pipeline einer der vier Operatoren &, ;, &&, oder || geschrieben wird (oder zumindest zwischen aufeinanderfolgende Pipelines). Hinter der letzten Pipeline ist allerdings nur &, ; oder ein Zeilenvorschub zulässig.

Dabei haben & und ; gleiche Priorität beim Zusammenfassen, und zwar eine niedrigere als && und || (die auch wieder gleichen Vorrang haben).

Zwei mit ; getrennte Pipelines werden in der angegebenen Reihenfolge abgearbeitet (von links nach rechts). Die rechts stehende wird erst gestartet, wenn die links stehende beendet ist (unabhängig vom Rückgabewert der linken Pipeline). Das Ergebnis der linken Pipeline wird verworfen, nur die ganz rechts in einer solchen Liste stehende Pipeline liefert den Rückgabewert des Gesamtausdrucks.

Eine mit & beendete Pipeline wird als Hintergrundprozeß gestartet; ihr Rückgabewert kann nicht verwertet werden. Stattdessen wird der Wert 0 angenommen.

Sind zwei Pipelines mit dem Operator && getrennt, dann wird erst die linke Seite ausgeführt und es wird auf ihr Ende gewartet. Falls sie dann den Wert 0 (also erfolgreich) liefert, wird die rechte Seite gestartet. Rückgabewert des Gesamtausdrucks ist 0, wenn beide Teilausdrücke 0 lieferten (logisches UND, short circuit evaluation; siehe dazu auch test-Ausdrücke, true, false).

Analog wird bei || der linke Ausdruck ausgewertet; nur wenn er einen Wert ungleich 0 liefert, wird der rechte ausgeführt. Das Ergebnis ist 0, wenn mindestens einer der beiden 0 ergab (logisches ODER).

AnyWare@Wachtler.de