A expressão condicional ((...)) avalia uma expressão aritmética como se estivesse escrito em uma linguagem algorítmica "normal" (você pode até omitir sinais de dólar das variáveis) e define o status de saída para 1 se a expressão é avaliada como 0 ou 0 se a expressão for avaliada como um valor diferente de zero.
No bash versão 3.2 e posterior você pode (e deve) usar $ (())
Cite este
O que é o bash?
Descendente da Bourne Shell, Bash é um produto GNU, o "Bourne Novamente SHELL. "É a interface de linha de comando padrão na maioria dos Linux máquinas. Ele se destaca na interatividade, suportando edição de linha de comando, conclusão e recall. Também suporta prompts configuráveis - a maioria as pessoas percebem isso, mas não sabem o quanto pode ser feito.
Você deve usar (( ))
para expressões matemáticas:
echo "$(( 2*3 ))"
ou
echo "$(( $X*$Y ))"
ou até mesmo
echo "$(( X*Y ))"
Por que echo $[..]
também funciona em algum ambiente?
Expansão aritmética
A expansão aritmética permite a avaliação de uma aritmética expressão e substituição do resultado. O formato para expansão aritmética é:
$ ((expression))
O formato antigo $ [expression] está obsoleto e será removido nas próximas versões do bash.