Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #
- # funciones2.sh
- # Autor: angeldp
- #
- # Script que, por medio de un menú, permitirá
- # A) Saber cuántos ficheros de dispositivo tipo carácter hay
- # B) Ver cuáles son y lo que ocupan los perfiles de usuario
- # C) Crear un informa con esa información
- # El menú contemplará la posibilidad de finalización y
- # mostrará un mensaje indicando si se introdujo una opción
- # no permitida.
- #
- # Dado que las opciones B y C son iguales y sólo
- # cambia la salida (por pantalla o a un fichero)
- # crearé una función para hacerla y su salida
- # se redireccionará donde proceda.
- #
- #
- function perfiles () {
- # Guardo la lista de usuarios en USUARIOS
- USUARIOS=`cut -d":" -f1 /etc/passwd`
- #Muestro una cabecera para la salida
- echo -e "USUARIO:\t\tRuta al Perfil:\t\tTamaño:"
- echo -e "___________________________________________________________"
- # Hago un bucle para cada USUARIO
- for USUARIO in $USUARIOS
- do
- # Obtengo la ruta al perfil de cada uno
- HOGAR=`grep ^${USUARIO}: /etc/passwd | cut -d":" -f6`
- #Y el tamaño de cada perfil si existe
- if [ -d $HOGAR ]
- then
- TAMANHO=`du -sh $HOGAR 2> /dev/null | cut -f1 `
- else
- TAMANHO=0
- fi
- # Sólo queda escribir la línea:
- echo -e "${USUARIO}\t\t\t${HOGAR}\t\t${TAMANHO}"
- done
- }
- # FIN DE FUNCIÓN perfiles ()
- OPCMENU=0
- # Dentro de un bucle para que se ejecute hasta que se
- # pulse una q (o una Q) muestro el menú:
- #
- while [ "${OPCMENU}" != "q" ] && [ "${OPCMENU}" != "Q" ]
- do
- clear
- echo 'Bienvenido al ejercicio del examen'
- echo -e "\nIndique una de las siguientes opciones"
- echo -e "\n\tA\tLe dirá el nº de ficheros de dispositivo"
- echo -e "\t\ttipo carácter que hay en /dev"
- echo -e "\n\tB\tLe informa sobre los perfiles de usuario"
- echo -e "\n\tC\tPermite guardar esa información en un archivo"
- echo -e "\nPulse q para finalizar.\n"
- read -n 1 -p "Su opción: " OPCMENU
- #
- # Por medio de un case controlaré cuál fue la opción indicada
- #
- case $OPCMENU in
- "a" | "A" )
- # Si pulsó A contaré el número de entradas de /dev
- # que comienzan por "c" (también se podría hacer
- # por medio del test -c fichero y un contador)
- #
- VALOR=`ls -lAR /dev | grep ^c | wc -l`
- echo -e "\n\tHay $VALOR dispositivos de tipo carácter en /dev"
- read -sn 1 -p "pulse para volver al menú" BASURA;;
- #
- "b" | "B" )
- #
- # Si pulsó B llamaré a la función que muestra
- # los perfiles
- #
- perfiles
- read -sn 1 -p "pulse para volver al menú" BASURA;;
- #
- "c" | "C" )
- #
- # Si pulso C llama a la función, pero redirijo su salida a
- # un fichero log en Documentos e informo de ello
- #
- perfiles > $HOME/Documentos/logexamen.log
- echo "Se ha procesado la tarea"
- echo "En $HOME/Documentos/logexamen.log está el resultado."
- read -sn 1 -p "pulse para volver al menú" BASURA;;
- #
- "q" | "Q" )
- clear
- exit;;
- * )
- #
- # Si pulsa una opción no permitida le enseño a usar un menú.
- #
- echo "Sólo son opciones válidas 'a', 'b', 'c' o 'q'"
- read -sn 1 -p "pulse para volver al menú" BASURA;;
- esac
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement