Grundlagen von Linux und der Kommandozeile
$ false && echo A || echo B
$ true || echo C; echo DWelche Zeichen werden angezeigt, wenn die beiden obigen Zeilen in einer Shell ausgeführt werden?
- ANur D
- BB und D
- 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.
Weiter: 9 weitere Fragen zu Grundlagen von Linux und der Kommandozeile