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.