V odstavci vysvětlujícím aritmetické rozšíření Bashova uživatelská příručka odhaluje 2 různé způsoby vyhodnocení výrazu, první používá $(( EXPRESSION ))
a druhý používá $[ EXPRESSION ]
. Tyto dva způsoby se zdají být velmi podobné, protože jediný rozdíl, který jsem našel, je:
$[ EXPRESSION ]
vypočítá pouze výsledek EXPRESSION a neprovede žádné testy:
Přesto mě to zaujalo, protože stejný dokument doporučuje použít $[ EXPRESSION ]
spíše než $(( EXPRESSION ))
.
Kdykoli je to možné, měli by se uživatelé Bash snažit použít syntaxi s hranatými závorkami:
Proč byste to chtěli, když se dělá méně testů?
Přijatá odpověď:
Duplikační otázka (s odpovědí)
https://stackoverflow.com/questions/2415724/bash-arithmetic-expression-vs-arithmetic-expression
Manuálová stránka pro bash v3.2.48 říká:
[…] Formát pro aritmetické rozšíření je:
$((expression))
Starý formát $[expression] je zastaralý a bude odstraněn v nadcházejících verzích bash.
Takže $[…] je stará syntaxe, která by se již neměla používat
Kromě této odpovědi:
http://manual.cream.org/index.cgi/bash.1#27
Informace týkající se verzí bash:
Zde je několik informací o manuálových stránkách bash (je těžké najít informace o tom, na jakou verzi se každá z nich odkazuje):
Odkaz OP:
http://www.tldp.org/guides.html Průvodce Bash pro začátečníky
verze:1.11
autor:Machtelt Garrels,
poslední aktualizace:prosinec 2008
sth (74,6 000 opakování) s citací bash v3.2.48
z https://stackoverflow.com/questions/2415724/bash-arithmetic-expression-vs-arithmetic-expression)
Poznámka:Více informací o [] vs (()) zde:http://lists.gnu.org/archive/html/bug-bash/2012-04/msg00033.html
našel jsem odkaz:
http://www.gnu.org/software/bash/manual/ poslední aktualizace 22. srpna 2012
http://www.gnu.org/software/bash/manual/bash.html#Arithmetic-Expansion