Buscando en internet, he visto este artículo de Linux Center super interesante, sobre si una variable tiene o no un valor.
He copiado parte del artículo para tenerlo siempre accesible.
Ya de pasada, para que el artículo sea más completo, he añadido también la opción de comprobar si existe un directorio o archivo y si estos son ejecutables, tienen permisos…
Para comprobarlo en estos ejemplos, utilizaremos siempre la sentencia if.
Con la opción -d, especificamos el directorio
#!/bin/bash
DIRECTORIO=/root1
if [ -d "$DIRECTORIO" ]
then
echo "El directorio ${DIRECTORIO} existe"
else
echo "El directorio ${DIRECTORIO} no existe"
fi
Con la opción -f, especificamos el archivo
#!/bin/bash
ARCHIVO=/etc/passwd
if [ -f $ARCHIVO ]
then
echo "El fichero $ARCHIVO existe"
else
echo "El fichero $ARCHIVO no existe"
fi
Para saber si una variable existe y está inicializada en un script o tu máquina, que esté o no está vacía.
Tomaremos variable
""= como ejemplo.
#!/bin/bash
if [ "$variable" ]
then
echo "La variable existe y no está vacía"
else
echo "La variable no existe o está vacía"
fi
El resultado sería: La variable no existe o está vacía
#!/bin/bash
variable=""
if [ "$variable" ]
then
echo "La variable existe y no está vacía"
else
echo "La variable no existe o está vacía"
fi
Resultado: La variable no existe o está vacía
#!/bin/bash
variable="valor"
if [ "$variable" ]
then
echo "La variable existe y no está vacía"
else
echo "La variable no existe o está vacía"
fi
Resultado: La variable existe y no está vacía
#!/bin/bash
variable="valor"
if [ "$variable" ]
then
echo "La variable existe y no está vacía"
else
if [ -n "${variable-unset}" ]
then
echo "La variable no existe"
else
echo "La variable existe pero está vacía"
fi
fi
Resultado: La variable existe y no está vacía
Y ahora probaremos si la cadena está vacía:
#!/bin/bash
variable=""
if [ "$variable" ]
then
echo "La variable existe y no está vacía"
else
if [ -n "${variable-unset}" ]
then
echo "La variable no existe"
else
echo "La variable existe pero está vacía"
fi
fi
Resultado: La variable existe pero está vacía
Sin variable (la comento):
#!/bin/bash
# variable=""
if [ "$variable" ]
then
echo "La variable existe y no está vacía"
else
if [ -n "${variable-unset}" ]
then
echo "La variable no existe"
else
echo "La variable existe pero está vacía"
fi
fi
Resultado: La variable no existe
Publicado por Angel el Friday 29 January del 2021
También te puede interesar:
Powered by org-bash-blog
Written in OrgMode with Emacs and converted to HTML with Pandoc
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.