![Diferencia entre `[[ $a -lt 2 ]]` y `(( $a < 2 ))`](https://rvso.com/image/95775/Diferencia%20entre%20%60%5B%5B%20%24a%20-lt%202%20%5D%5D%60%20y%20%60((%20%24a%20%3C%202%20))%60.png)
¿Existe alguna diferencia significativa entre usar [[ $a -lt 2 ]]
y (( $a < 2 ))
?
Por ejemplo, ¿uno de ellos es más rápido o más compatible con POSIX que el otro?
Respuesta1
Ninguno de los dos es compatible con POSIX. En un shell POSIX, puede utilizar el comando [ "$a" -lt 2 ]
o elexpresión $(( a < 2 ))
.
En bash
, el primero es simplemente el comando condicional que admite un superconjunto de expresiones condicionales que [
admite, y el segundo es un comando independiente que sale con el estado 0 si la expresión aritmética adjunta no es cero, o 1 en caso contrario. Aparte de la legibilidad, no existe una diferencia significativa entre los dos cuando se usan correctamente.