Grundlagen von Linux und der Kommandozeile

$ false && echo A || echo B
$ true || echo C; echo D

Welche Zeichen werden angezeigt, wenn die beiden obigen Zeilen in einer Shell ausgeführt werden?

  1. ANur D
  2. BB und D
  3. CB, C und D
Antwort und Erläuterung anzeigen

Antwort: B. B und D

Jeder Befehl liefert beim Beenden einen Exit-Status: 0 bedeutet Erfolg, jeder andere Wert Misserfolg (den letzten Wert zeigt $?). „A && B“ führt B nur aus, wenn A erfolgreich ist, „A || B“ führt B nur aus, wenn A fehlschlägt, und „;“ führt den nächsten Befehl unabhängig vom Ergebnis aus. In der ersten Zeile schlägt false fehl, also wird echo A übersprungen; das gesamte „false && echo A“ gilt als fehlgeschlagen, und echo B nach || wird ausgeführt. In der zweiten Zeile ist true erfolgreich, also wird echo C nicht ausgeführt, während echo D nach „;“ immer läuft; angezeigt werden daher B und D.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen von Linux und der Kommandozeile

  1. Welche Ausgaben erzeugen die beiden echo-Befehle, wenn die obigen Befehle nacheinander ausgeführt werden?
  2. Wie oben gezeigt, wird das Skript s.sh mit Argumenten ausgeführt. Welche Ausgabe ist richtig?
  3. In welchem Fall ist die Bedingung des obigen if in einem Shell-Skript wahr?
  4. Welche Dateien liegen nach der obigen Sitzung im Verzeichnis?
  5. Ein ausführbares Skript run.sh im aktuellen Verzeichnis ergibt bei Eingabe von „run.sh“ die Meldung „command not found“, lässt sich aber durch Eingabe von „./run.sh“ ausführen. Was ist der Grund?