#!/bin/bash


#genera la opción -a para buscar dentro de los alumnos
if [[ $1 = "-a" ]]
then
#lee linea por linea la lista de procesos
	while read line 
	do
	set -- $line 
#obtengo la lista de los alumnos incluyendo campos vacios
	nombres=$(getent passwd $1 | grep -e alumnos | awk -F":" '{print $5}')

	if [[ $nombres != "" ]]
#se eliminan los campos vacios, recibiendo una lista con solo los nombres de los alumnos
	then
	nombre=$nombres
	head -n 1 | echo "Nombre real del usuario: " $nombre
#imprime el primer usuario de la lista que hace referencia al mas antiguo que ha ejecutado algo
	echo "Comando: " $3
	echo "Tiempo: "$2 
	fi
	done < <(ps -eo user,etime,command,pid --sort=start_time)
#entrega la lista de procesos ordenados por tiempo de inicio al while
fi


#esto hace lo mismo que lo de arriba pero busca dentro de los profesores
if [[ $1 = "-p" ]]
then
	
	while read line
	do
	set -- $line
	nombprof=$(getent passwd $1 | grep -e profesores | awk -F":" '{print $5}')

	if [[ $nombprof != "" ]]
	then
	nompro=$nombprof
	head -n 1 | echo "Nombre real del usuario: " $nompro
	echo "Comando: " $3
	echo "Tiempo: " $2
	fi

	done < <(ps -eo user,etime,command,pid --sort=start_time)
fi


#esto hace lo mismo que los anteriores, pero ve cual es el mas antiguo, ya sea un profesor o un alumno
if [[ $1 = "" ]]
then
	while read line
	do
	set -- $line
	general=$(getent passwd $1 | grep -e alumnos -e profesores | awk -F":" '{print $5}')

	if [[ $general != "" ]]
	then
	general2=$general
	head -n 1 | echo "Nombre real del usuario: " $general2
	echo "Comando: " $3
	echo "Tiempo: " $2
	fi
	done < <(ps -eo user,etime,command,pid --sort=start_time)
fi






