Dentro de los corchetes individuales para la prueba de condición (es decir, [...]), algunos operadores como single =
son compatibles con todos los shells, mientras que el uso del operador ==
no es compatible con algunos de los shells más antiguos.
Dentro de los corchetes dobles para la prueba de condición (es decir, [...]]), no hay diferencia entre usar =
o ==
en conchas viejas o nuevas.
Editar: También debo tener en cuenta que: en bash, siempre use corchetes [...] dobles si es posible, porque es más seguro que los corchetes individuales. Ilustraré por qué con el siguiente ejemplo:
if [ $var == "hello" ]; then
si $ var resulta ser nulo / vacío, entonces esto es lo que ve el script:
if [ == "hello" ]; then
que romperá tu guión. La solución es usar corchetes dobles o siempre recordar poner comillas alrededor de sus variables ( "$var"
). Los corchetes dobles son una mejor práctica de codificación defensiva.