Pregunta Comprobando la cadena nula en bash


¿Hay alguna diferencia entre las siguientes pruebas?

[[ "$STRING" = "" ]] && exit 1;


[[ "x$STRING" = "x" ]] && exit 1;


[[ -z $STRING ]] && exit 1;

5
2017-07-12 14:11


origen


Respuestas:


No, todos son iguales. Pero un par de hábitos defensivos para entrar.

  • Deberías citar el $STRING en el -z uno también
  • Si está ejecutando con la opción -u (siempre lo hago), entonces debería hacer referencia a la posible variable opcional como ${STRING-} por si acaso no está configurado en absoluto

11
2017-07-12 14:14



Aparentemente, todos hacen lo mismo, es decir, si la cadena dada es "vacía", excepto que la primera comprueba si $ string está vacía, la segunda verifica si x más $ string es igual a xy, finalmente, -z que verifica la longitud. Personalmente, me gustaría ir con -z eso es más realiable.


0
2017-07-12 14:22