Berechnungen auf der Kommandozeile
Die Shell ermöglicht die Auswertung arithmetischer Ausdrücke. Das umfasst die Grundrechenarten, Exponentialrechnung, sowie bitweise und logische Operationen.
- Der auszuwertende Ausdruck steht innerhalb doppelter runder Klammern:
(( expr )) - Für die Anzeige setze ein Dollarzeichen davor:
echo $(( expr )) - Die Auswertung erfolgt mit den größten verfügbaren Ganzzahlen fester Länge, ohne Überprüfung auf Überlauf
- Als Operanden sind auch Shell-Variablen möglich. Die Variablen können ohne das führende Dollarzeichen geschrieben werden (siehe Beispiele unten)
- Nachkommastellen werden abgeschnitten, nicht gerundet. Wenn Nachkommastellen benötigt werden, rechne mit 10- oder 100-fach größeren Zahlen und setze im Ergebnis selbst das Komma
Einige Beispiele:
echo $(( 42 / 7 )) # Division --> 6
echo $(( 48 / 7 )) # Division --> 6, Nachkomma abgeschnitten
echo $(( 7 ** 3 )) # Exponentialfunktion --> 343
echo $(( 7 % 3 )) # Remainder --> 1
number=666
echo $(( number + 42 )) # --> 708
echo $number # Variable unverändert 666
echo $(( number += 42 )) # --> 708
echo $number # Variable neuer Wert 708
echo $(( number < 666 )) # logisch falsch --> 0
echo $(( number > 42 )) # logisch wahr --> 1
if (( number > 42)) ; then echo ja; fi # --> ja
# oder einfacher:
(( number > 42 )) && echo ja
echo $(( 42 << 1 )) # bitweise 1 x links schieben --> 84
Hinweise
- Die Regeln für die Auswertung sind in der bash man page im Kapitel ARITHMETIC EVALUATION erläutert.
- Wenn die arithmetischen Möglichkeiten der bash nicht ausreichen, installiere das Programm calc.