Es un script orientativo para practicar con sentencias case, su sintaxis y particularidades relacionadas con el uso de los puntos y coma al final de cada orden, así como de funciones que simplifican en gran medida el trabajo a la hora de utilizar menús.
Nota: la creación, borrado y listado de las carpetas se ha fijado en el home del usuario que en ese momento esté conectado al sistema, por simplificar.
#!/bin/bash
function crear_carpeta()
{
clear
echo "CREACIÓN DE CARPETA"
echo
read -p "Introduce el nombre de la carpeta a crear: " carpeta
if [ "$carpeta"="" ]
then
echo "No has introducido una carpeta para crearla"
exit 1
# Cerramos el script indicando error(drástico)
else
# Ahora gestionamos la creación
echo "El nombre introducido es: " $carpeta
if [ -d /home/$USERNAME/$carpeta ]
then
echo "La carpeta indicada existe, no se creará"
else
mkdir /home/$USERNAME/$carpeta
if [ $? -eq 0 ]
then
echo "Carpeta creada con éxito"
else
echo "Error al crear la carpeta"
fi
fi
fi
read -p "Pulse una tecla para continuar"
}
function borrar_carpeta()
{
clear
echo "BORRADO DE CARPETA"
echo read -p "Introduce la carpeta a borrar: " carpeta2
if [ "$carpeta2"="" ]
then
echo "No has introducido una carpeta para borrarla"
exit 1
# Cerramos el script indicando error(drástico)
else
# Ahora gestionamos el borrado
if [ -d /home/$USERNAME/$carpeta2 ]
then
echo "Ok, tu carpeta existe. Borrándola..."
rm -r /home/$USERNAME/$carpeta2
if [ $? -eq 0 ]
then
echo "Carpeta borrada con éxito"
else
echo "Error al borrar la carpeta"
fi
else
echo "La carpeta introducida no existe, no se borrará nada"
fi
fi
read -p "Pulse una tecla para continuar"
}
function listar_carpeta()
{
clear
echo "LISTADO DE CARPETA"
echo
echo "Estas son las carpetas actuales en tu home: "
ls /home/$USERNAME | more
echo "........................................"
read -p "Introduzca la carpeta a listar: " carpeta3
if [ -d /home/$USERNAME/$carpeta3 ]
then
echo "Listando carpeta..."
ls -l /home/$USERNAME/$carpeta3
else
echo "Error, la carpeta indicada no existe"
fi
read -p "Pulse una tecla para continuar"
}
# PROGRAMA PRINCIPAL
while [ "$opcion1" != "b" ]
do
clear
echo "*******MENU PRINCIPAL *********"
echo "a) Gestionar carpetas "
echo "b) Salir "
echo "***************************** **"
function crear_carpeta()
{
clear
echo "CREACIÓN DE CARPETA"
echo
read -p "Introduce el nombre de la carpeta a crear: " carpeta
if [ "$carpeta"="" ]
then
echo "No has introducido una carpeta para crearla"
exit 1
# Cerramos el script indicando error(drástico)
else
# Ahora gestionamos la creación
echo "El nombre introducido es: " $carpeta
if [ -d /home/$USERNAME/$carpeta ]
then
echo "La carpeta indicada existe, no se creará"
else
mkdir /home/$USERNAME/$carpeta
if [ $? -eq 0 ]
then
echo "Carpeta creada con éxito"
else
echo "Error al crear la carpeta"
fi
fi
fi
read -p "Pulse una tecla para continuar"
}
function borrar_carpeta()
{
clear
echo "BORRADO DE CARPETA"
echo read -p "Introduce la carpeta a borrar: " carpeta2
if [ "$carpeta2"="" ]
then
echo "No has introducido una carpeta para borrarla"
exit 1
# Cerramos el script indicando error(drástico)
else
# Ahora gestionamos el borrado
if [ -d /home/$USERNAME/$carpeta2 ]
then
echo "Ok, tu carpeta existe. Borrándola..."
rm -r /home/$USERNAME/$carpeta2
if [ $? -eq 0 ]
then
echo "Carpeta borrada con éxito"
else
echo "Error al borrar la carpeta"
fi
else
echo "La carpeta introducida no existe, no se borrará nada"
fi
fi
read -p "Pulse una tecla para continuar"
}
function listar_carpeta()
{
clear
echo "LISTADO DE CARPETA"
echo
echo "Estas son las carpetas actuales en tu home: "
ls /home/$USERNAME | more
echo "........................................"
read -p "Introduzca la carpeta a listar: " carpeta3
if [ -d /home/$USERNAME/$carpeta3 ]
then
echo "Listando carpeta..."
ls -l /home/$USERNAME/$carpeta3
else
echo "Error, la carpeta indicada no existe"
fi
read -p "Pulse una tecla para continuar"
}
# PROGRAMA PRINCIPAL
while [ "$opcion1" != "b" ]
do
clear
echo "*******MENU PRINCIPAL *********"
echo "a) Gestionar carpetas "
echo "b) Salir "
echo "*****************************
read -p "Introduzca una opción: " -n1 opcion1
case $opcion1 in
a) while [ "$opcion2" != "4" ]
do
clear;
echo "******* MENU CARPETAS *******";
echo "1) Crear carpeta";
echo "2) Borrar carpeta";
echo "3) Listar carpeta";
echo "4) Salir";
echo "*****************************
read -p "Introduce una opción: " -n1 opcion2;
case $opcion2 in
1) crear_carpeta;;
2) borrar_carpeta;;
3) listar_carpeta;;
4) ;;
*) echo "Opción no válida";;
esac;
done;;
b)echo "Fin del script";;
esac
done
echo "Gracias por utilizar este programa"
read
exit 0