A razão é que ((...))
é um caso especial. Realiza aritmética. Não há uso para o texto dentro de ((...))
. Assim, como um atalho, qualquer nome dentro de ((...))
é considerado como uma variável de shell.
Como resultado, os dois seguintes fazem a mesma coisa:
$ a=1; b=2; ((c=$a+$b)); echo $c
3
$ a=1; b=2; ((c=a+b)); echo $c
3