El Grupo Informático

Codigo explicado

Codigo explicado

Notapor raulbarazas » 31 Mayo 2019, 17:43

#este codigo esta explicado
#!/bin/bash
clear
eliminaUser() {
#hacemos un bucle leyendo la linea del archivo, cogemos el campo 1 y 3
for linea in $(cat /etc/passwd | cut -d":" -f1,3); do
id=$(echo $linea | cut -d":" -f2) #guardmos en una variable el id de la persona
if [ $id -lt 2000 ] && [ $id -ge 1000 ]; then #si la id esta entre 2000 y 1000
echo $(echo $linea | cut -d":" -f1) #mostrsmos por pantalla el nombre
fi
done

echo "Quin usuari vols eliminar?"
read user #pedimos el nombre del user

sudo deluser --force $user #eliminamos el usuario

if [ $? -eq 0 ]; then #si lo que retorna es igual a 0 (osea k se a eliminao)
echo "$user;delete;$(date +%D)" >> $1 #guardamos en el fichero el usuario, que hemos eliminado, y la fecha
else
exit 3;
fi
}

creaUser() {

sudo useradd $1 -u $2 -p $3 #creamos el usuario con los datos que nos han pasado $1=nombre 2=id $3 = Password $4=archivo

if [ $? -eq 0 ]; then #si a funcionado bien
echo "$1;add;$(date +%D)" >> $4 #guardamos en el archivo el nombre, que se a creado, y la fecha
else
exit 3;
fi

}

infoMes() {
for linea in $(cat $2); do #creamos un bucle que lea linea a linea el fichero pasado a la fucnion

mes=$(echo $linea | cut -d";" -f3 | cut -d"/" -f1) #almacenamos en una variable con el mes de la linea, primero separamos por
#por ; y cogemos la fecha, despues separamos por / y cogemos el mes
if [ $1 -eq $mes ]; then #comprobamos si el mes que hemos introducido por pantalla es gual al mes de la linea
echo $linea #si es igual, mostramos por pantalla la linea
fi

done
}



if [ -f $1 ] && [ $# -eq 1 ]; then #comprobamos que se nos haya enviado un fichero

echo "[1] Eliminació d’usuaris" #Creamos el menu
echo "[2] Crear usuaris massivament"
echo "[3] Accions de l’últim més"
echo "[4] Exit"

echo "Qué opción quieres?"
read opcion #guardamos en opcion un numero

case $opcion in #Ejecutamos los diferentes casos
1)
eliminaUser $1 #llamamos a la funcion eliminaUser
;;
2)
echo "Introduzca csv:"
read file #introducimos un fichero csv

numLinea=$(cat $file | wc -l) #variable de los numeros de linea wc-l dice el numero de lineas
for linea in $(cat $file | tail -n$(($numLinea -1))); do #tail -n muestra las ultim lineas dep del num. Muestra todo menos 1a #fila
nom=$(echo $linea | cut -d";" -f1) #guardamos en una variable cada parametro
id=$(echo $linea | cut -d";" -f2)
pw=$(echo $linea | cut -d";" -f3)

creaUser $nom $id $pw $1 #llamamos a la funcion por cada linea, pasandole los datos de cada fila

done
;;
3)
echo "Introduzca mes por pantalla en formato mm"
read mes

infoMes $mes $1
;;
4)
exit 0;
;;
*)
exit 3;
;;
esac

else
exit 1;
fi
raulbarazas
Participo
Participo
 
Mensajes: 7
Registrado: 31 Mayo 2019, 17:27
Karma Usuario: 0
Post Karma: 0


Re: Codigo explicado

Notapor adri1992 » 05 Junio 2019, 20:37

Muy buenas,

¿dónde está la duda exactamente?
Avatar de Usuario
adri1992
Admin del Foro
Admin del Foro
 
Mensajes: 4907
Registrado: 02 Agosto 2011, 02:57
Karma Usuario: 91
Post Karma: 0


Volver a Foro Software



cron