(integer arithmetic)
Durch das eingebaute Shell-Kommando let steht Ganzzahl-Arithmetik zur Verfügung. Die Berechnungen werden auf der Basis von Long-Arithmetik durchgeführt. Konstanten werden in der Form [basis#]n dargestellt. Dabei ist basis eine ganze Zahl zwischen 2 und 36 und gibt die Basis an, und n ist eine Zahl zu dieser Basis. Fehlt basis, dann wird im Zehnersystem gerechnet.
Syntax
Format 1: | let ausdruck ... |
Format 2: | ((ausdruck)) ... |
ausdruck Jedes Argument ist ein arithmetischer Ausdruck. Die berechneten Ergebnisse werden ausgegeben.
Da einige der arithmetischen Operatoren für die POSIX-Shell entwertet werden müssen, wurde eine alternative Form zum eingebauten Kommando let eingeführt. Bei jedem Kommando, das mit doppelter runder Klammer auf (( beginnt, werden alle Zeichen bis zum schließenden runden Klammerpaar )) als entwertet genommen. ((a=a+b)) entspricht let "a=a+b". |
Arithmetische Berechnungen
Der arithmetischer Ausdruck ist stark an die Programmiersprache C angelehnt. Er benutzt dieselbe Syntax, gleiche Vorrangregeln und Assoziativität. Alle unerlässlichen Operatoren außer ++, --, ?: und Komma , sind vorhanden. Auf den Wert von Variablen kann über deren Namen zugegriffen werden, Sie müssen kein Dollarzeichen verwenden. Wenn der Wert einer Variablen eingesetzt wird, dann wird ihr Wert als arithmetischer Ausdruck berechnet. Durch die Option -i des eingebauten Kommandos typeset kann als Attribut für die interne Darstellung des Wertes einer Variablen die Ganzzahldarstellung gewählt werden. Bei jeder Wertzuweisung auf eine Variable mit dem -i-Attribut wird eine arithmetische Berechnung durchgeführt. Wird keine Basis für die Berechnungen angegeben, dann wird die Basis der ersten Wertzuweisung an die Variable verwendet. Diese Basis wird auch bei der Durchführung von Parameterersetzung verwendet. |
Endestatus
0 | wenn der Wert des letzten Ausdrucks ungleich 0 war |
1 | sonst. |
Fehler
|
Beispiel
Das nachfolgende Beispiel zeigt eine einfache Rechenoperation. Es werden beide Schreibweisen von let verwendet.
|