From 31af7a1552fd1ce5dfc234806458a5f1504de3cd Mon Sep 17 00:00:00 2001 From: raul Date: Wed, 22 Jan 2025 10:06:11 +0100 Subject: [PATCH] Add surprise exam (easy) --- class/examensorpresa/script1.sh | 20 ++++++++++++++++++++ class/examensorpresa/script2.sh | 30 ++++++++++++++++++++++++++++++ class/examensorpresa/script3.sh | 33 +++++++++++++++++++++++++++++++++ class/examensorpresa/script4.sh | 27 +++++++++++++++++++++++++++ 4 files changed, 110 insertions(+) create mode 100755 class/examensorpresa/script1.sh create mode 100755 class/examensorpresa/script2.sh create mode 100755 class/examensorpresa/script3.sh create mode 100755 class/examensorpresa/script4.sh diff --git a/class/examensorpresa/script1.sh b/class/examensorpresa/script1.sh new file mode 100755 index 0000000..7cac0ed --- /dev/null +++ b/class/examensorpresa/script1.sh @@ -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 diff --git a/class/examensorpresa/script2.sh b/class/examensorpresa/script2.sh new file mode 100755 index 0000000..5864353 --- /dev/null +++ b/class/examensorpresa/script2.sh @@ -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 diff --git a/class/examensorpresa/script3.sh b/class/examensorpresa/script3.sh new file mode 100755 index 0000000..a65c1dc --- /dev/null +++ b/class/examensorpresa/script3.sh @@ -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 + diff --git a/class/examensorpresa/script4.sh b/class/examensorpresa/script4.sh new file mode 100755 index 0000000..bb81d42 --- /dev/null +++ b/class/examensorpresa/script4.sh @@ -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