Si en un shell script queremos comprobar cualquier cosa y, que el script actúe de manera distinta según el resultado de la comprobación usaremos:

if [ condición ]
then
     # instrucciones a ejecutar si la condición es cierta
fi

O si queremos que en caso de que la condición sea falsa ejecute otras instrucciones:

if [ condición ]
then
     # instrucciones a ejecutar si la condición es cierta
else
     # instrucciones a ejecutar en caso de que la condición sea falsa
fi

Y si queremos que vuelva a hacer una comprobación, en caso de que la condición sea cierta o falsa, usaremos:


if [ condición ]
then
     # instrucciones a ejecutar si la condición es cierta
elif [ condición ]
then
     # instrucciones a ejecutar si la segunda comprobación es cierta
else 
     # instrucciones a ejecutar si las dos comprobaciones anteriores son falsas
fi

Y podemos incluir tantos if dentro de otros if como queramos. 

Para la temática que nos ocupa en este tutorial, comprobaremos:
Si un determinado directorio existe con [ -d $directorio ]
En caso de que queramos comprobar si el directorio no existe, se niega la condición con un signo de exclamación: [ ! -d $directorio ]
Si el directorio tiene algún fichero o directorio [ "$(ls $directorio)" ]
O si el directorio está vacío [ ! "$(ls $directorio)" ]

Vistas las aclaraciones, el código que comprueba si un directorio existe o no y que, en caso de que exista, compruebe si está vacío o no, sería:

if [ ! -d $directorio ]
then
     echo "El directorio no existe"

else 
     if [ "$(ls $directorio)" ]
     then 
         echo "el directorio tiene algo"

     else
         echo "el directorio está vacío"

     fi
fi

Publicado en Programación

¡Atención! Este sitio usa cookies y tecnologías similares.

Si no cambia la configuración de su navegador, usted acepta su uso. Saber más

Acepto

Vea nuestra política de cookies y enlaces de interés aquí