Probar la existencia de una variable con test -z
En este paso, aprenderá cómo comprobar si una variable está vacía o no está definida utilizando el comando test con la opción -z. Esto es útil en scripting para tomar decisiones basadas en si una variable tiene un valor.
El comando test se utiliza para evaluar expresiones condicionales. La opción -z comprueba si la longitud de una cadena es cero. Si la cadena está vacía (o la variable no está definida), la prueba es verdadera.
Probemos si una variable llamada MY_VARIABLE está definida. Primero, nos aseguraremos de que no esté definida.
Escriba el siguiente comando y presione Enter:
unset MY_VARIABLE
El comando unset elimina una variable. Ahora, usemos test -z para comprobar si MY_VARIABLE está vacía. Lo combinaremos con echo para ver el resultado de la prueba. El operador && ejecuta el segundo comando solo si el primer comando tiene éxito (devuelve un valor verdadero, lo que para test significa que se cumple la condición).
Escriba el siguiente comando y presione Enter:
test -z "$MY_VARIABLE" && echo "MY_VARIABLE is empty or not set"
Como acabamos de eliminar MY_VARIABLE, la condición test -z "$MY_VARIABLE" es verdadera (la variable está vacía), por lo que se ejecutará el comando echo.
Debería ver la salida:
MY_VARIABLE is empty or not set
Ahora, establezcamos un valor para MY_VARIABLE.
Escriba el siguiente comando y presione Enter:
MY_VARIABLE="Hello"
Ahora, ejecutemos de nuevo el mismo comando test -z.
Escriba el siguiente comando y presione Enter:
test -z "$MY_VARIABLE" && echo "MY_VARIABLE is empty or not set"
Esta vez, MY_VARIABLE tiene el valor "Hello", por lo que no está vacía. La condición test -z "$MY_VARIABLE" es falsa, y el comando echo no se ejecutará.
Esta vez, no debería ver ninguna salida del comando echo.
Esto demuestra cómo se puede usar test -z para comprobar si una variable está vacía o no está definida. Este es un concepto fundamental utilizado en scripting de shell para la lógica condicional.