Einfache Verzweigungen: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
 
= Kurzlogische Verzweigungen (&& und ||) =
 
= Kurzlogische Verzweigungen (&& und ||) =
  
*Kurzlogische Verzweigungen nutzen den Rückgabewert (Exit-Status) eines Befehls, um Folgeaktionen in einer Zeile auszuführen.
+
*Kurzlogische Verzweigungen nutzen den Rückgabewert (Exit-Status) eines Befehls, um Folgeaktionen in einer Zeile auszuführen.
*Dadurch können einfache Prüfungen kompakt formuliert werden, ohne die if-Struktur zu verwenden.*
+
*Dadurch können einfache Prüfungen kompakt formuliert werden, ohne die if-Struktur zu verwenden.
  
 
== Grundprinzip ==
 
== Grundprinzip ==
* '''&&''' (UND): führt den nächsten Befehl **nur** aus, wenn der vorherige erfolgreich war (Exit-Status 0).
+
* '''&&''' (UND): führt den nächsten Befehl **nur** aus, wenn der vorherige erfolgreich war (Exit-Status 0).
* '''||''' (ODER): führt den nächsten Befehl **nur** aus, wenn der vorherige **nicht** erfolgreich war (Exit-Status ≠ 0).
+
* '''||''' (ODER): führt den nächsten Befehl **nur** aus, wenn der vorherige **nicht** erfolgreich war (Exit-Status ≠ 0).
  
 
== Beispiele ==
 
== Beispiele ==
* [ -f /etc/passwd ] && echo "Datei existiert"
+
* [ -f /etc/passwd ] && echo "Datei existiert"
   Datei existiert
+
   Datei existiert
* [ -d /root ] || echo "Verzeichnis /root existiert nicht"
+
* [ -d /root ] || echo "Verzeichnis /root existiert nicht"
   Verzeichnis /root existiert nicht
+
   Verzeichnis /root existiert nicht
* [ "$USER" = "root" ] && echo "Administrator" || echo "Normaler Benutzer"
+
* [ "$USER" = "root" ] && echo "Administrator" || echo "Normaler Benutzer"
   Normaler Benutzer
+
   Normaler Benutzer
  
 
== Überprüfung des Rückgabewerts ==
 
== Überprüfung des Rückgabewerts ==
*Der Rückgabewert des letzten Kommandos kann mit '''echo $?''' ausgegeben werden.
+
*Der Rückgabewert des letzten Kommandos kann mit '''echo $?''' ausgegeben werden.
   0 = wahr / erfolgreich
+
   0 = wahr / erfolgreich
   ≠0 = falsch / Fehler
+
   ≠0 = falsch / Fehler
  
 
== Hinweise ==
 
== Hinweise ==
* Eignet sich für **Einzeiler** und kurze logische Prüfungen.
+
* Eignet sich für **Einzeiler** und kurze logische Prüfungen.
* Die Auswertung basiert ausschließlich auf dem **Exit-Status**.
+
* Die Auswertung basiert ausschließlich auf dem **Exit-Status**.
 
* Für komplexere Abläufe sollte die klassische if-Struktur verwendet werden.
 
* Für komplexere Abläufe sollte die klassische if-Struktur verwendet werden.
  
 
== Aufgaben ==
 
== Aufgaben ==
*Überprüfen Sie mit einem Einzeiler, ob die Datei '''/etc/passwd''' existiert, und geben Sie eine Meldung aus.
+
*Überprüfen Sie mit einem Einzeiler, ob die Datei '''/etc/passwd''' existiert, und geben Sie eine Meldung aus.
*Prüfen Sie, ob eine Variable '''NAME''' leer ist oder nicht, und geben Sie „leer“ oder „nicht leer“ aus.
+
*Prüfen Sie, ob eine Variable '''NAME''' leer ist oder nicht, und geben Sie „leer“ oder „nicht leer“ aus.
*Bauen Sie einen Einzeiler, der „Root-Benutzer“ oder „Normaler Benutzer“ anzeigt, abhängig vom aktuellen Login-Namen.
+
*Bauen Sie einen Einzeiler, der „Root-Benutzer“ oder „Normaler Benutzer“ anzeigt, abhängig vom aktuellen Login-Namen.
*Geben Sie nach jeder Prüfung den Exit-Status mit '''echo $?''' aus.*
+
*Geben Sie nach jeder Prüfung den Exit-Status mit '''echo $?''' aus.

Version vom 24. November 2025, 17:40 Uhr

Kurzlogische Verzweigungen (&& und ||)

  • Kurzlogische Verzweigungen nutzen den Rückgabewert (Exit-Status) eines Befehls, um Folgeaktionen in einer Zeile auszuführen.
  • Dadurch können einfache Prüfungen kompakt formuliert werden, ohne die if-Struktur zu verwenden.

Grundprinzip

  • && (UND): führt den nächsten Befehl **nur** aus, wenn der vorherige erfolgreich war (Exit-Status 0).
  • || (ODER): führt den nächsten Befehl **nur** aus, wenn der vorherige **nicht** erfolgreich war (Exit-Status ≠ 0).

Beispiele

  • [ -f /etc/passwd ] && echo "Datei existiert"
 Datei existiert
  • [ -d /root ] || echo "Verzeichnis /root existiert nicht"
 Verzeichnis /root existiert nicht
  • [ "$USER" = "root" ] && echo "Administrator" || echo "Normaler Benutzer"
 Normaler Benutzer

Überprüfung des Rückgabewerts

  • Der Rückgabewert des letzten Kommandos kann mit echo $? ausgegeben werden.
 0 = wahr / erfolgreich
 ≠0 = falsch / Fehler

Hinweise

  • Eignet sich für **Einzeiler** und kurze logische Prüfungen.
  • Die Auswertung basiert ausschließlich auf dem **Exit-Status**.
  • Für komplexere Abläufe sollte die klassische if-Struktur verwendet werden.

Aufgaben

  • Überprüfen Sie mit einem Einzeiler, ob die Datei /etc/passwd existiert, und geben Sie eine Meldung aus.
  • Prüfen Sie, ob eine Variable NAME leer ist oder nicht, und geben Sie „leer“ oder „nicht leer“ aus.
  • Bauen Sie einen Einzeiler, der „Root-Benutzer“ oder „Normaler Benutzer“ anzeigt, abhängig vom aktuellen Login-Namen.
  • Geben Sie nach jeder Prüfung den Exit-Status mit echo $? aus.