![Diferença entre `[[ $a -lt 2 ]]` e `(( $a < 2 ))`](https://rvso.com/image/95775/Diferen%C3%A7a%20entre%20%60%5B%5B%20%24a%20-lt%202%20%5D%5D%60%20e%20%60((%20%24a%20%3C%202%20))%60.png)
Existe alguma diferença significativa entre usar [[ $a -lt 2 ]]
e (( $a < 2 ))
?
Por exemplo, um deles é mais rápido ou mais compatível com POSIX que o outro?
Responder1
Nenhum dos dois é compatível com POSIX. Em um shell POSIX, você pode usar o comando [ "$a" -lt 2 ]
ou oexpressão $(( a < 2 ))
.
Em bash
, o primeiro é simplesmente o comando condicional que suporta um superconjunto de expressões condicionais que [
suporta, e o último é um comando independente que sai com status 0 se a expressão aritmética incluída for diferente de zero, ou 1 caso contrário. Além da legibilidade, não há diferença significativa entre os dois quando usados corretamente.