Mehrere Befehle in einem einzigen Befehl ausführen mit der Sicherheit, das der vorige Befehl erfolgreich war

  • Viele User werden das schon kennen, einigen wird das neu sein. Trotzdem möchte ich es einmal erwähnt haben.

    Wenn wir in der Konsole einen Befehl eingeben, gefolgt von einem zweiten Befehl und einem dritten Befehl so können wir das hintereinander schreiben. Sieht dann zum Beispiel so aus ...

    Code
    Befehl-1; Befehl-2; Befehl-3

    Durch den Separator ";" werden die Befehle hintereinander ausgeführt und du musst nicht auf die vorherigen Befehle warten, um die Befehlssequenz abzuarbeiten.

    Woher bekommen wir in dem Falle aber die Gewissheit, das alle aufgeführten Befehle korrekt abgearbeitet worden sind?

    Von niemandem.

    Also, das muss auch anders gehen .. und es geht auch anders ...

    Code
    Befehl-1 && Befehl-2 && Befehl-3

    Man kann für diesen Fall statt des Separators ";" das Trennzeichen & in doppelter Ausführung einsetzen. Dies stellt sicher, das der zweite Befehl erst abgearbeitet wird, wenn der erste fehlerfrei durchgelaufen ist. Und der dritte und der vierte etc.pp. Der klassische Anwendungsfall ist ein Update unter Leap ...

    Code
    zypper clean -a && zypper up

    Bedeutet, mit zypper wird erst geupdatet, wenn zypper clean fehlerlos durchgelaufen ist. Selbstverständlich kann man diese Art der Befehlssequenz auch in allen anderen Befehlen verwenden, namentlich überall da, wo ein zweiter Befehl die Korrektheit des ersten voraussetzt.