Expr: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
 
 
== expr ==
 
== expr ==
  
Zeile 24: Zeile 23:
 
;Hinweise
 
;Hinweise
 
* Operatoren müssen durch Leerzeichen getrennt werden.   
 
* Operatoren müssen durch Leerzeichen getrennt werden.   
* Die Schreibweise $(expr …) ist eine Form der Befehlssubstitution –
+
* Die Schreibweise $(expr …) ist eine Form der Befehlssubstitution – das Ergebnis eines Kommandos wird in eine Variable übernommen.   
  das Ergebnis eines Kommandos wird in eine Variable übernommen.   
 
 
   Dieser Mechanismus wird in einem späteren Abschnitt ausführlich erklärt.   
 
   Dieser Mechanismus wird in einem späteren Abschnitt ausführlich erklärt.   
 
* In modernen Bash-Skripten kann stattdessen arithmetische Substitution verwendet werden:
 
* In modernen Bash-Skripten kann stattdessen arithmetische Substitution verwendet werden:
   echo $((7 + 5))
+
   * echo $((7 + 5))
 +
  12 
 +
 
 
=== Aufgaben ===
 
=== Aufgaben ===
  
 
== Rechnen mit expr ==
 
== Rechnen mit expr ==
 
* Führen Sie verschiedene arithmetische Operationen mit expr aus:
 
* Führen Sie verschiedene arithmetische Operationen mit expr aus:
   expr 8 + 3   
+
   * expr 8 + 3   
   expr 10 - 7   
+
   * expr 10 - 7   
   expr 4 \* 6   
+
   * expr 4 \* 6   
   expr 15 / 4   
+
   * expr 15 / 4   
 
* Beobachten Sie, dass alle Operatoren durch Leerzeichen getrennt sein müssen.
 
* Beobachten Sie, dass alle Operatoren durch Leerzeichen getrennt sein müssen.
  
 
== Variablen verwenden ==
 
== Variablen verwenden ==
 
* Legen Sie zwei Variablen an und berechnen Sie deren Summe:
 
* Legen Sie zwei Variablen an und berechnen Sie deren Summe:
   A=7   
+
   * A=7   
   B=5   
+
   * B=5   
   expr $A + $B   
+
   * expr $A + $B
 +
    12  
 
* Speichern Sie das Ergebnis in einer neuen Variablen:
 
* Speichern Sie das Ergebnis in einer neuen Variablen:
   SUMME=$(expr $A + $B)   
+
   * SUMME=$(expr $A + $B)   
   echo $SUMME
+
   * echo $SUMME
 +
    12 
  
 
== Ausdruck in Skript einbinden ==
 
== Ausdruck in Skript einbinden ==
Zeile 60: Zeile 62:
  
 
* Machen Sie das Skript ausführbar und führen Sie es aus:
 
* Machen Sie das Skript ausführbar und führen Sie es aus:
   chmod +x rechnen.sh   
+
   * chmod +x rechnen.sh   
   ./rechnen.sh   
+
   * ./rechnen.sh   
 +
 
 +
  Berechnung starten 
 +
  Ergebnis: 30 
 +
 
 
* Überlegen Sie, was die Befehlssubstitution in diesem Beispiel bewirkt.
 
* Überlegen Sie, was die Befehlssubstitution in diesem Beispiel bewirkt.

Version vom 17. Oktober 2025, 14:22 Uhr

expr

  • Der Befehl expr führt einfache Ganzzahlarithmetik und Stringoperationen direkt in der Shell aus.
  • Er war lange Zeit das Standardwerkzeug für Berechnungen in POSIX-Shells und ist auch heute noch in minimalistischen Umgebungen nützlich.
  • Das Ergebnis wird auf die Standardausgabe geschrieben.
Beispiele für Ganzzahlarithmetik
  • expr 7 + 5
 12  
  • expr 7 \* 5
 35  
  • expr 7 / 5
 1  
  • expr 7 - 5
 2  
  • expr 7 % 5
 2  
Mit Variablen
  • ZAHL=5 ; ZAHL=$(expr $ZAHL + 1) ; echo $ZAHL
 6  
Hinweise
  • Operatoren müssen durch Leerzeichen getrennt werden.
  • Die Schreibweise $(expr …) ist eine Form der Befehlssubstitution – das Ergebnis eines Kommandos wird in eine Variable übernommen.
 Dieser Mechanismus wird in einem späteren Abschnitt ausführlich erklärt.  
  • In modernen Bash-Skripten kann stattdessen arithmetische Substitution verwendet werden:
 * echo $((7 + 5))
 12  

Aufgaben

Rechnen mit expr

  • Führen Sie verschiedene arithmetische Operationen mit expr aus:
 * expr 8 + 3  
 * expr 10 - 7  
 * expr 4 \* 6  
 * expr 15 / 4  
  • Beobachten Sie, dass alle Operatoren durch Leerzeichen getrennt sein müssen.

Variablen verwenden

  • Legen Sie zwei Variablen an und berechnen Sie deren Summe:
 * A=7  
 * B=5  
 * expr $A + $B  
   12  
  • Speichern Sie das Ergebnis in einer neuen Variablen:
 * SUMME=$(expr $A + $B)  
 * echo $SUMME  
   12  

Ausdruck in Skript einbinden

  • Erstellen Sie ein Skript namens rechnen.sh mit folgendem Inhalt:
#!/bin/bash
echo "Berechnung starten"
ZAHL=10
ERGEBNIS=$(expr $ZAHL \* 3)
echo "Ergebnis: $ERGEBNIS"
  • Machen Sie das Skript ausführbar und führen Sie es aus:
 * chmod +x rechnen.sh  
 * ./rechnen.sh  
 Berechnung starten  
 Ergebnis: 30  
  • Überlegen Sie, was die Befehlssubstitution in diesem Beispiel bewirkt.