Blog del Podcast
podcast      GitHub      Twitter   Telegram

Saber si existen variables, directorios o archivos con bash

Tiempo estimado de lectura: 5 minutos. 572 palabras. bash

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.

Si existe un directorio

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

Si existe un archivo

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

Saber si una variable existe

Si existe una variable

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

Variable 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

Variable no 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

Variable con valor y no 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

Fuentes


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

Licencia de Creative Commons
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.