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