Add extra class exercises
This commit is contained in:
parent
cc335ca6a5
commit
d73ffd06b2
|
@ -0,0 +1,17 @@
|
|||
#!/bin/bash
|
||||
# Ya se que no hace falta declarar variables en Bash
|
||||
# pero es costumbre
|
||||
declare NUM1
|
||||
declare NUM2
|
||||
|
||||
# Leemos entrada de usuario y le asignamos a las variables
|
||||
# anteriormente declaradas
|
||||
read -p "Número 1: " NUM1
|
||||
read -p "Número 2: " NUM2
|
||||
|
||||
# Comparamos si las dos variables son iguales o no
|
||||
if [[ $NUM1 != $NUM2 ]]; then
|
||||
echo "El numero $NUM1 es distinto a $NUM2"
|
||||
else
|
||||
echo "Los dos números introducidos son iguales ($NUM1)"
|
||||
fi
|
|
@ -0,0 +1,19 @@
|
|||
#!/bin/bash
|
||||
# Declaramos las dos variables asignándoles el primer y segundo parámetro del script
|
||||
NUM1=$1
|
||||
NUM2=$2
|
||||
|
||||
# Comprobamos si cualquiera de las variables está vacía, indicando que el usuario
|
||||
# no nos ha proporcionado suficientes parámetros, alertamos el error y salimos del
|
||||
# programa
|
||||
if [[ $NUM1 == "" || $NUM2 == "" ]]; then
|
||||
echo "Entrada inválida, quiero dos números por parámetros"
|
||||
exit
|
||||
fi
|
||||
|
||||
# Volvemos a realizar la comprobación de igualdad entre las variables
|
||||
if [[ $NUM1 != $NUM2 ]]; then
|
||||
echo "El numero $NUM1 es distinto a $NUM2"
|
||||
else
|
||||
echo "Los dos números introducidos son iguales ($NUM1)"
|
||||
fi
|
|
@ -0,0 +1,90 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Función para mostrar fácilmente el menú de ayuda
|
||||
ayuda() {
|
||||
echo "
|
||||
*********************************
|
||||
* MENU CLASE SMR-A *
|
||||
*********************************
|
||||
[1] Mostrar la carpeta donde estoy situado
|
||||
[2] Mostrar las 10 últimas lineas de fichero /etc/passwd
|
||||
[3] Crear un usuario nuevo
|
||||
[4] Mostrar la fecha y la hora
|
||||
[5] Mostrar el calendario anual
|
||||
[6] Mostrar menú
|
||||
[7] Limpiar pantalla
|
||||
[8] Salir
|
||||
"
|
||||
}
|
||||
|
||||
# Función que pide entrada de usuario y devuelve esta misma entrada
|
||||
# a la llamada original
|
||||
getInput() {
|
||||
read -p "Opción: " CHOICE
|
||||
echo $CHOICE
|
||||
}
|
||||
|
||||
# Función "main", ejecuta un bucle infinito en el que pide entrada
|
||||
# de usuario para ejecutar cualquiera de las opciones contempladas en el
|
||||
# Switch, mostrando un error si no se introduce un número válido
|
||||
main() {
|
||||
ayuda
|
||||
while true; do
|
||||
CHOICE=$(getInput)
|
||||
case "$CHOICE" in
|
||||
1)
|
||||
# Muestra la carpeta actual
|
||||
echo "Te encuentras en la carpeta: $(pwd)"
|
||||
;;
|
||||
2)
|
||||
# Muestra las últimas 10 líneas de /etc/passwd
|
||||
echo "$(tail -n10 /etc/passwd)"
|
||||
;;
|
||||
3)
|
||||
# Pedimos el nombre de usuario y ejecutamos un simple useradd
|
||||
echo "Qué nombre debería tener el usuario?"
|
||||
read -p "Nombre: " NOMBRE
|
||||
sudo useradd -m $NOMBRE
|
||||
echo "Usuario añadido!"
|
||||
;;
|
||||
4)
|
||||
# Muestra la fecha
|
||||
echo "La fecha actual es $(date)!"
|
||||
;;
|
||||
5)
|
||||
# El más interesante de todos, como tenía que esperar 7 segundos antes de mostrar
|
||||
# el calendario, decidí utilizar un bucle "for" haciendo uso de "printf" con
|
||||
# carácteres de Carriage Return (\r) para poder simular una barra de espera antes
|
||||
# de ejecutar el comando final
|
||||
SEPARADOR="."
|
||||
for ((i = 0; i < 7; i++)); do
|
||||
printf "El calendario actual es$SEPARADOR\r"
|
||||
SEPARADOR+="."
|
||||
sleep 1
|
||||
done
|
||||
cal -y
|
||||
;;
|
||||
6)
|
||||
# Llama a la función de ayuda para mostrar el menú otra vez
|
||||
ayuda
|
||||
;;
|
||||
7)
|
||||
# Llama a la función de ayuda para mostrar el menú otra vez pero primero limpiando
|
||||
# la pantalla
|
||||
clear
|
||||
ayuda
|
||||
;;
|
||||
8)
|
||||
# Sale del programa
|
||||
echo "Adiós!"
|
||||
exit
|
||||
;;
|
||||
*)
|
||||
echo "Entrada inválida"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
# Iniciar el programa
|
||||
main
|
Loading…
Reference in New Issue