
Bash If Variable is Empty Do Actions

Introducción
En la programación de shell scripts, a menudo necesitamos saber si una variable está vacía o no para que nuestro script pueda tomar decisiones adecuadas. En este artículo, aprenderemos cómo comprobar si una variable está vacía o no y cómo ejecutar acciones según el estado de la variable.
¿Qué es una variable vacía en Bash?
En Bash, se considera que una variable está vacía si no tiene ningún valor asignado a ella. Esto puede suceder si la variable no se ha inicializado, su valor se ha eliminado o si el usuario no ha proporcionado ningún valor.
Comprobar si una variable está vacía o no
Podemos verificar si una variable está vacía o no utilizando el comando -z
. Este comando devuelve "verdadero" si la longitud de la cadena es cero.
Ejemplo de uso de '-z'
Supongamos que tenemos una variable llamada "nombre" y queremos verificar si está vacía o no. El siguiente código mostrará si la variable "nombre" está vacía o no:
if [ -z "$nombre" ]
then
echo "La variable nombre está vacía"
else
echo "La variable nombre no está vacía"
fi
Si la variable "nombre" está vacía, entonces el código imprimirá "La variable nombre está vacía".
Ejecutar acciones según el estado de la variable
Podemos ejecutar acciones según el estado de la variable usando comandos condicionales. En Bash, podemos usar los comandos if...else
, if...elif...else
y case
para tomar decisiones basadas en el estado de las variables.
Ejemplo de uso de 'if...else'
Supongamos que tenemos una variable "edad" y queremos imprimir un mensaje diferente según el estado de la variable. El siguiente código muestra cómo hacerlo:
if [ -z "$edad" ]
then
echo "No se ha proporcionado la edad"
else
if [ "$edad" -lt 18 ]
then
echo "Eres menor de edad"
else
echo "Eres mayor de edad"
fi
fi
Si la variable "edad" está vacía, entonces el código imprimirá "No se ha proporcionado la edad". Si la variable "edad" tiene un valor menor que 18, el código imprimirá "Eres menor de edad". De lo contrario, imprimirá "Eres mayor de edad".
Ejemplo de uso de 'case'
El siguiente ejemplo muestra cómo utilizar la estructura de control case
para ejecutar acciones según el estado de una variable:
case "$variable" in
"" )
echo "La variable está vacía";;
*[!0-9]* )
echo "La variable contiene caracteres no numéricos";;
* )
echo "La variable contiene un número";;
esac
Este código comprueba si la variable está vacía, si contiene caracteres no numéricos o si contiene un número.
Conclusión
En este artículo, aprendimos cómo comprobar si una variable está vacía o no y cómo ejecutar acciones según el estado de la variable. Esto puede ser útil en la programación de shell scripts cuando tenemos que tomar decisiones basadas en el estado de una variable.
Preguntas frecuentes
¿Cómo puedo asignar un valor predeterminado a una variable si está vacía?
Podemos asignar un valor predeterminado a una variable si está vacía utilizando el operador de asignación condicional :-
. El siguiente código asignará el valor "valor_predeterminado" a la variable "nombre" si "nombre" está vacía:
nombre=${nombre:-valor_predeterminado}
¿Puedo verificar si una variable NO está vacía?
Sí, podemos verificar si una variable NO está vacía utilizando el comando -n
. Este comando devuelve "verdadero" si la longitud de la cadena es diferente de cero.
¿Por qué necesito verificar si una variable está vacía?
Cuando escribimos shell scripts, a menudo necesitamos tomar decisiones basadas en el estado de las variables. Si no verificamos si una variable está vacía o no, nuestro script puede generar errores inesperados o comportamientos no deseados.
¿Puedo usar comandos condicionales en otros lenguajes de programación?
Sí, la mayoría de los lenguajes de programación tienen estructuras de control de flujo similares a los comandos condicionales en Bash.
Ejemplos de códigos y comandos
En el siguiente ejemplo, se muestra cómo asignar un valor predeterminado a una variable si está vacía.
nombre=${nombre:-valor_predeterminado}
En este ejemplo, se utiliza el operador de asignación condicional :-
para asignar el valor "valor_predeterminado" a la variable "nombre" si "nombre" está vacía.
Deja una respuesta