Add surprise exam (easy)

This commit is contained in:
raul 2025-01-22 10:06:11 +01:00
parent e1618e0acc
commit 31af7a1552
Signed by: raul
GPG Key ID: C1AA797073F17129
4 changed files with 110 additions and 0 deletions

20
class/examensorpresa/script1.sh Executable file
View File

@ -0,0 +1,20 @@
#!/bin/bash
# Pedir al usuario que introduzca un número, validar que el los segundos son entre 0 y 20
# y hacer un sleep con esos segundos
checkSeconds() {
SEGARG="$1"
if (( $SEGARG > 20 )); then
echo "Segundos inválidos!"
exit
fi
}
main() {
SEG=
read -p "Introduzca un número de segundos: " SEG
checkSeconds "$SEG"
sleep "$SEG"
}
main

30
class/examensorpresa/script2.sh Executable file
View File

@ -0,0 +1,30 @@
#!/bin/bash
SEGUNDOS=$1
CARACTER=$2
RE='^[0-9]+$'
# Por 2 parámetros, validar que se han introducido dos parámetros
# 1º parámetro = segundos
# 2º parámetro = carácter
validar() {
if [[ -z $SEGUNDOS || -z $CARACTER ]]; then
echo "Parámetros insuficientes (./script2.sh 5 a)"
exit
fi
if [[ ! $SEGUNDOS =~ $RE ]]; then
echo "Número inválido!"
exit
fi
}
main() {
validar
for ((i = 0; i < $SEGUNDOS; i++)); do
sleep 1s
echo "$CARACTER"
done
}
main

33
class/examensorpresa/script3.sh Executable file
View File

@ -0,0 +1,33 @@
#!/bin/bash
EDAD=
main() {
read -p "Qué edad tienes? " EDAD
read -p "Tienes zapatos? [y/N] " ZAPATOS
if [[ $ZAPATOS != "y" ]] || (( $EDAD < 18 )); then
echo "No puedes pasar"
exit
fi
echo "Puedes pasar"
}
# ESTO NO SE MERECE EXISTIR, NO HAGAS ESTO
# anidado() {
# read -p "Qué edad tienes? " EDAD
# read -p "Tienes zapatos? [y/N] " ZAPATOS
#
# if (( $EDAD > 18 )); then
# if [[ $ZAPATOS == "y" ]]; then
# echo "Puedes pasar"
# else
# echo "No puedes pasar"
# fi
# else
# echo "No puedes pasar"
# fi
# }
main

27
class/examensorpresa/script4.sh Executable file
View File

@ -0,0 +1,27 @@
#!/bin/bash
PASSWD=$(tail -n4 /etc/passwd | cut -d ":" -f 1,3,7)
INFO=("Nombre" "UID" "Shell")
# Recorrer el fichero de usuarios donde quiero que me muestre la información:
# Nombre:
# UID:
# Shell:
#
getUserInfo() {
USER=$1
IFS=':'
COUNT=0
for v in $USER; do
echo "${INFO[$COUNT]}: $v"
let COUNT++
done
}
main() {
echo "-------------------------"
while read -r v; do
getUserInfo "$v"
echo "-------------------------"
done<<<$PASSWD
}
main