Nel paragrafo che spiega l'espansione aritmetica, la guida per l'utente di Bash scopre 2 diversi modi di valutare un'espressione, il primo utilizza $(( EXPRESSION ))
e il secondo usa $[ EXPRESSION ]
. I due modi sembrano abbastanza simili poiché l'unica differenza che ho trovato è:
$[ EXPRESSION ]
calcolerà solo il risultato di EXPRESSION e non eseguirà test:
Tuttavia, sono incuriosito perché lo stesso documento consiglia di utilizzare $[ EXPRESSION ]
anziché $(( EXPRESSION ))
.
Ove possibile, gli utenti di Bash dovrebbero provare a utilizzare la sintassi tra parentesi quadre:
Perché dovresti volerlo se vengono eseguiti meno test?
Risposta accettata:
Domanda duplicata (con risposta)
https://stackoverflow.com/questions/2415724/bash-arithmetic-expression-vs-arithmetic-expression
La manpage per bash v3.2.48 dice:
[…] Il formato per l'espansione aritmetica è:
$((expression))
Il vecchio formato $[espressione] è obsoleto e verrà rimosso nelle prossime versioni di bash.
Quindi $[…] è una vecchia sintassi che non dovrebbe più essere utilizzata
Oltre a quella risposta:
http://manual.cream.org/index.cgi/bash.1#27
Informazioni relative alle versioni bash:
Ecco alcune informazioni sulle pagine man di bash (è difficile trovare informazioni su a quale versione si riferisce ciascuna):
Link OP:
http://www.tldp.org/guides.html Bash Guide for Beginners
versione:1.11
autore:Machtelt Garrels,
ultimo aggiornamento:dicembre 2008
sth (74.6k rep) citando bash v3.2.48
da https://stackoverflow.com/questions/2415724/bash-arithmetic-expression-vs-arithmetic-expression)
Nota:maggiori informazioni su [] vs (()) qui:http://lists.gnu.org/archive/html/bug-bash/2012-04/msg00033.html
un link che ho trovato:
http://www.gnu.org/software/bash/manual/ ultimo aggiornamento 22 agosto 2012
http://www.gnu.org/software/bash/manual/bash.html#Espansione aritmetica