Arithmetische Substitutionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Arithmetische Substitution

  • Die arithmetische Substitution ermöglicht es, Rechenoperationen direkt in der Shell auszuführen.
  • Die Shell wertet dabei arithmetische Ausdrücke aus und ersetzt sie durch das Ergebnis.
  • Im Gegensatz zu expr erfolgt die Berechnung intern, ohne ein separates Programm aufzurufen.
  • Das Ergebnis kann ausgegeben, in Variablen gespeichert oder in andere Kommandos eingebettet werden.

Syntax

  • Die arithmetische Substitution wird mit $((...)) geschrieben.
  • Innerhalb der doppelten Klammern können ganzzahlige Ausdrücke mit Operatoren wie +, -, *, / und % verwendet werden.
Beispiel
  • echo $((3 + 5))
8  

Verwendung mit Variablen

  • Variablen können direkt innerhalb der arithmetischen Substitution verwendet werden.
  • Das Dollarzeichen vor dem Variablennamen ist dabei optional.
Beispiele
  • A=7
  • B=4
  • echo $((A + B))
11  
  • ERGEBNIS=$((A * B))
  • echo $ERGEBNIS
28  

Komplexe Ausdrücke

  • Mehrere Operationen können kombiniert werden.
  • Klammern dienen zur Steuerung der Reihenfolge.
Beispiele
  • echo $(((10 + 2) * 3))
36  
  • ZAHL=20
  • echo $((ZAHL / 4 + 6))
11  

Vergleich mit expr

  • expr benötigt Leerzeichen zwischen den Operanden und ruft ein externes Programm auf.
  • Die arithmetische Substitution wird direkt von der Shell interpretiert.
Beispiele
  • expr 7 + 5
12  
  • echo $((7 + 5))
12  

Weitere Operatoren

  • Es stehen die üblichen C-ähnlichen Operatoren zur Verfügung:
    • + Addition
    • - Subtraktion
    • * Multiplikation
    • / Division (Ganzzahlergebnis)
    • % Modulo
    • ** Potenz (ab Bash 4)
    • ++ Inkrement
    • -- Dekrement
Beispiele
  • A=5
  • echo $((A++))
5  
  • echo $A
6  
  • echo $((A**2))
36  

Hinweise

  • Divisionen werden als Ganzzahl berechnet (keine Nachkommastellen).
  • Ergebnisse von arithmetischen Substitutionen können direkt in Befehlen verwendet werden.
  • Die Syntax $((...)) wird auch in Bedingungen oder Schleifen eingesetzt (z. B. while oder for).
  • Die arithmetische Substitution ist eine Sonderform der Befehlssubstitution, bei der statt eines Kommandos ein arithmetischer Ausdruck ausgewertet wird.
  • Die Befehlssubstitution wird später im Detail behandelt.

Aufgaben

Grundlagen

  • Führen Sie einfache Berechnungen mit arithmetischer Substitution durch.
  • Verwenden Sie dazu die Syntax $((...)).
Beispiele
  • echo $((5 + 8))
  • echo $((12 - 4))
  • echo $((6 * 3))
  • echo $((15 / 2))
  • echo $((15 % 4))

Arbeiten mit Variablen

  • Legen Sie zwei Variablen A und B mit beliebigen Zahlenwerten an.
  • Berechnen Sie deren Summe, Differenz, Produkt und Quotient mit arithmetischer Substitution.
  • Speichern Sie das Ergebnis einer Berechnung in einer neuen Variablen ERG und geben Sie es aus.

Erweiterte Operationen

  • Erhöhen Sie eine Variable mit dem Inkrementoperator um eins und geben Sie das Ergebnis aus.
  • Verringern Sie die Variable anschließend mit dem Dekrementoperator um eins.
  • Berechnen Sie das Quadrat einer Zahl mit dem Potenzoperator **.
  • Verwenden Sie einen kombinierten Ausdruck wie $(( (A + B) * 2 )).

Anwendung in Skripten

  • Erstellen Sie ein Skript arithmetik.sh mit folgendem Inhalt:
#!/bin/bash
A=5
B=3
ERG=$(( (A + B) * 2 ))
echo "Das Ergebnis beträgt: $ERG"
  • Machen Sie das Skript ausführbar und führen Sie es aus.
  • Ändern Sie die Werte von A und B und beobachten Sie die Ergebnisse.