#!/bin/bash
#
#Opción C del examen
#
# Se presentará un menú con 4 opciones:
# A) Número de archivos del usuario
# B) El archivo que más ocupe en su home
# C) El último archivo modificado en su home
# D) Permite incluir directorios en el PATH
# pulsando q se saldrá del menú y se controlará
# la introducción de opciones incorrectas.
#
# Bucle infinito para marear con el menú hasta que se pulse q
while [ "${OPC}" != "q" ] && [ "${OPC}" != "Q" ]
do
clear
echo -e "\v\tPulse A\ty se indicará el número de archivos que tienes en $HOME"
echo -e "\tPulse B\ty mostraré cuál de ellos es el que más ocupa"
echo -e "\tPulse C\ty te diré cuál es el último modificado"
echo -e "\tPulse D\tsi quieres introducir un directorio en su PATH"
echo -e "\t\"q\" finaliza."
read -sn 1 -p "Elija una opción: " OPC
# Veamos qué ha elegido
case $OPC in
"a" | "A" )
# Número de archivos de los que es propietario
i=0
# En $LISTA guardo los archivos de su home, quitando las líneas que terminan en ":"
LISTA=`ls -AR $HOME | grep -v :$`
for VAR in $LISTA
do
# Si el primer comando da error no ejecuta el segundo
test -O ${HOME}/${VAR} && i=`expr $i + 1`
done
clear
echo "Tienes $i archivos de tu propiedad en $HOME"
read -sn 1 -p "pulse cualquier tecla..." BASURA;;
"b" | "B" )
# Haré un ls -lRA para que muestre todo y lo ordenaré numéricamente por el campo
#5 (el del tamaño) y cojo la última línea. Esa línea la usaré para llamar a una
#función que me muestra el resultado
resultado(){
clear
echo "El archivo en $HOME que más ocupa es $9 con un tamaño de $5 KB"
read -sn 1 -p "Pulse cualquier tecla" BASURA
}
LINEA=`ls -lkRA $HOME | sort -n -k5 | tail -1`
resultado $LINEA;;
"c" | "C" )
# Para ver el arhivo más reciente de $HOME usaré el parámetro -t del ls
clear
ARCHIVO=`ls -At $HOME | head -1`
echo "El archivo más recientemente modificado en $HOME es $ARCHIVO."
read -sn 1 -p "Pulse cualquier tecla" BASURA;;
"d" | "D" )
# Haré un bucle hasta que se introduzca un directorio existente
#y cuando se haya introducido lo incluyo en el PATH
clear
while [ -z $FLAG ]
do
echo -n "Indique el directorio a incluir en su PATH: "
read DIR
if ! [ -d $DIR ]
then
echo "$DIR no existe, revise la ortografía."
continue
fi
FLAG=$DIR
done
FLAG=""
PATH="${PATH}:${DIR}"
echo "Hecho."
read -sn 1 -p "Pulse cualquier tecla" BASURA;;
* )
clear
echo "Sólo son opciones válidas "a", "b", "c", "d" o "q".";;
esac
done
clear