En el párrafo que explica la expansión aritmética, la guía del usuario de Bash descubre 2 formas diferentes de evaluar una expresión, la primera usa $(( EXPRESSION ))
y el segundo usa $[ EXPRESSION ]
. Las dos formas parecen bastante similares ya que la única diferencia que he encontrado es:
$[ EXPRESSION ]
solo calculará el resultado de EXPRESIÓN y no hará pruebas:
Sin embargo, estoy intrigado porque el mismo documento recomienda usar $[ EXPRESSION ]
en lugar de $(( EXPRESSION ))
.
Siempre que sea posible, los usuarios de Bash deben intentar usar la sintaxis entre corchetes:
¿Por qué querrías eso si se están haciendo menos pruebas?
Respuesta aceptada:
Pregunta de duplicación (con respuesta)
https://stackoverflow.com/questions/2415724/bash-arithmetic-expression-vs-arithmetic-expression
La página de manual de bash v3.2.48 dice:
[…] El formato para la expansión aritmética es:
$((expression))
El formato antiguo $[expresión] está en desuso y se eliminará en las próximas versiones de bash.
Entonces $[…] es una sintaxis antigua que ya no debería usarse
Además de esa respuesta:
http://manual.cream.org/index.cgi/bash.1#27
Información relacionada con las versiones de bash:
Aquí hay información sobre las páginas man de bash (es difícil encontrar información sobre a qué versión se refiere cada una):
Enlace OP:
http://www.tldp.org/guides.html Guía Bash para principiantes
versión:1.11
autor:Machtelt Garrels,
última actualización:diciembre de 2008
algo (74.6k rep) citando bash v3.2.48
de https://stackoverflow.com/questions/2415724/bash-arithmetic-expression-vs-arithmetic-expression)
Nota:Más información sobre [] vs (()) aquí:http://lists.gnu.org/archive/html/bug-bash/2012-04/msg00033.html
un enlace que encontré:
http://www.gnu.org/software/bash/manual/ última actualización el 22 de agosto de 2012
http://www.gnu.org/software/bash/manual/bash.html#Arithmetic-Expansion