Ich habe gerade auf der Bash Syntax gestolpert:
foo=42
bar=$[foo+1] # evaluates an arithmetic expression
Wenn ich für diese googeln, fand ich http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_03_04.html#sect_03_04_05 :
3.4.6. Arithmetische Erweiterung
Die arithmetische Erweiterung ermöglicht die Auswertung eines arithmetischen Ausdrucks und die Ersetzung des Ergebnisses. Das Format für arithmetische Erweiterung ist:
$((EXPRESSION))
...
Wo immer möglich, Bash-Benutzer sollten versuchen, die Syntax mit eckigen Klammern zu verwenden:
$[ EXPRESSION ]
Allerdings wird dies die einzige berechnen Ergebnis des Ausdrucks, und Sie keine Tests ...
In meiner bash man-Seite finde ich nur die $((EXPRESSION))
bilden, wie:
foo=42
bar=$((foo+1)) # evaluates an arithmetic expression
Also, was Tests nicht mit $[...]
ausgeführt werden, die mit $((...))
tun, oder ist die $[...]
nur eine Legacy-Version von $((...))
?
Eine historische Perspektive finden Sie unter http://stackoverflow.com/a/40048865/2908724. – bishop