In Tutorials und Anleitungen sehe ich oft kombinierte Befehle. Zum Beispiel,
sudo apt-get update && sudo apt-get install pyrenamer
Es scheint vier mögliche Anschlüsse zu sein: &, &&, ||und ;. Obwohl der & Konnektor für mich klar ist (er sendet einen Prozess in den Hintergrund und lässt das Terminal verfügbar), ist nicht klar, worin der Unterschied zwischen &&und besteht ;. Und ich wusste es nicht, ||bis Kayas Kommentar.
Die folgenden Fragen befassen sich mit dem Unterschied zwischen den beiden Konnektoren, aber meistens in den Kommentaren:
Hier sind einige verwandte Fragen:
- Was ist der Unterschied zwischen
;und&&? - Wann sollten Sie sie jeweils verwenden? Es wäre schön, einige Anwendungsfälle zu sehen: Wenn ich einen Befehl ausführen und dann meinen Computer herunterfahren möchte, welchen Anschluss soll ich wählen?
- Was sind ihre Vorteile und Gefahren ? Robie Basak erwähnt in einem Kommentar zu dieser Antwort, dass ein Befehl wie
cd /somewhere_else; rm -Rf *zum Beispiel destruktive Konsequenzen haben kann, wenn das erste Element in der Befehlskette ausfällt. - Woher kommen sie, falls relevant?
set -edas Skript bei einem Fehler anhält, als ob alle Befehle mit verbunden wären &&.
||ist derselbe wie,&&außer dass er den zweiten Befehl nur ausführt, wenn der erste mit einem Status ungleich Null (nicht erfolgreich) beendet wurde.