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.