In dem Abschnitt, der die arithmetische Erweiterung erklärt, deckt das Benutzerhandbuch von Bash zwei verschiedene Möglichkeiten auf, einen Ausdruck auszuwerten, die erste verwendet $(( EXPRESSION ))
und der zweite verwendet $[ EXPRESSION ]
. Die beiden Wege scheinen ziemlich ähnlich zu sein, da der einzige Unterschied, den ich gefunden habe, folgender ist:
$[ EXPRESSION ]
berechnet nur das Ergebnis von EXPRESSION und führt keine Tests durch:
Dennoch bin ich fasziniert, weil dasselbe Dokument die Verwendung von $[ EXPRESSION ]
empfiehlt statt $(( EXPRESSION ))
.
Bash-Benutzer sollten möglichst versuchen, die Syntax mit eckigen Klammern zu verwenden:
Warum sollten Sie das wollen, wenn weniger Tests durchgeführt werden?
Akzeptierte Antwort:
Duplizierungsfrage (mit Antwort)
https://stackoverflow.com/questions/2415724/bash-arithmetic-expression-vs-arithmetic-expression
Die Manpage für bash v3.2.48 sagt:
[…] Das Format für die arithmetische Erweiterung ist:
$((expression))
Das alte Format $[Ausdruck] ist veraltet und wird in kommenden Versionen von bash entfernt.
$[…] ist also eine alte Syntax, die nicht mehr verwendet werden sollte
Zusätzlich zu dieser Antwort:
http://manual.cream.org/index.cgi/bash.1#27
Info zu Bash-Versionen:
Hier sind einige Informationen über Bash-Manpages (es ist schwer, Informationen darüber zu finden, auf welche Version sich jede bezieht):
OPs-Link:
http://www.tldp.org/guides.html Bash Guide for Beginners
Version:1.11
Author:Machtelt Garrels,
last update:Dec 2008
sth (74.6k rep) zitiert bash v3.2.48
von https://stackoverflow.com/questions/2415724/bash-arithmetic-expression-vs-arithmetic-expression)
Hinweis:Weitere Informationen zu [] vs (()) finden Sie hier:http://lists.gnu.org/archive/html/bug-bash/2012-04/msg00033.html
ein Link, den ich gefunden habe:
http://www.gnu.org/software/bash/manual/ zuletzt aktualisiert am 22. August 2012
http://www.gnu.org/software/bash/manual/bash.html#Arithmetic-Expansion