Skip to content

Commit 910bb41

Browse files
authored
Merge pull request #6357 from h4ckxel/03road
#15 - Bash
2 parents d880285 + 9ee3d4f commit 910bb41

File tree

2 files changed

+95
-0
lines changed

2 files changed

+95
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#!/bin/bash
2+
3+
# Función genérica que ejecuta tareas asincrónicamente con nombre y duración
4+
function run_task() {
5+
local name="$1"
6+
local duration="$2"
7+
8+
if [[ -z "$name" || -z "$duration" ]]; then
9+
echo -e "[!] Error: Debes proporcionar un nombre y una duración para la tarea.\n"
10+
return 1
11+
fi
12+
13+
echo -e "[+] La tarea '$name' comienza a ejecutarse y durará ${duration} segundos...\n"
14+
sleep "$duration"
15+
echo -e "[!] La tarea '$name' ha finalizado.\n"
16+
}
17+
18+
# Función principal para ejecutar las tareas en el orden especificado
19+
function main() {
20+
echo -e "[+] Ejecutando las tareas en paralelo...\n"
21+
22+
# Ejecutar tareas C, B y A en paralelo
23+
run_task "Tarea C" 3 &
24+
run_task "Tarea B" 2 &
25+
run_task "Tarea A" 1 &
26+
27+
# Esperar a que todas las tareas en paralelo finalicen
28+
wait
29+
30+
echo -e "[+] Todas las tareas C, B y A han terminado. Iniciando la tarea D...\n"
31+
32+
# Ejecutar la tarea D después de que las demás terminen
33+
run_task "Tarea D" 1
34+
}
35+
36+
# Ejecutar la función principal
37+
main
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
#!/bin/bash
2+
3+
# Script de validación utilizando expresiones regulares
4+
5+
string="Pepe tiene el número 1234 y 5678"
6+
regex="[0-9]+"
7+
numbers=$(grep -oE "$regex" <<< "$string")
8+
echo -e "[+] Los números encontrados en la cadena de texto son: $numbers"
9+
10+
echo -e "\n\n================================ DIFICULTAD EXTRA ================================\n"
11+
12+
# Función para solicitar la entrada de usuario
13+
solicitar_entrada() {
14+
local mensaje="$1"
15+
local variable="$2"
16+
read -p "$mensaje" "$variable"
17+
}
18+
19+
# Función para validar un correo electrónico
20+
validar_email() {
21+
solicitar_entrada "[+] Introduce un email: " email
22+
regex_email="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"
23+
24+
if [[ $email =~ $regex_email ]]; then
25+
echo -e "[+] El email introducido es válido.\n"
26+
else
27+
echo -e "[!] El email introducido no es válido.\n"
28+
fi
29+
}
30+
31+
# Función para validar un número de teléfono
32+
validar_telefono() {
33+
solicitar_entrada "[+] Introduce un número de teléfono: " telefono
34+
regex_telefono="^\+?[0-9]{1,3}?[-. ]?\(?[0-9]{1,4}?\)?[-. ]?[0-9]{1,4}[-. ]?[0-9]{1,9}$"
35+
36+
if [[ $telefono =~ $regex_telefono ]]; then
37+
echo -e "[+] El número de teléfono introducido es válido.\n"
38+
else
39+
echo -e "[!] El número de teléfono introducido no es válido.\n"
40+
fi
41+
}
42+
43+
# Función para validar una URL
44+
validar_url() {
45+
solicitar_entrada "[+] Introduce una dirección URL: " url
46+
regex_url="^(https?://)?(www\.)?[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}(/.*)?$"
47+
48+
if [[ $url =~ $regex_url ]]; then
49+
echo -e "[+] La dirección URL introducida es válida.\n"
50+
else
51+
echo -e "[!] La dirección URL introducida no es válida.\n"
52+
fi
53+
}
54+
55+
# Ejecución de las validaciones
56+
validar_email
57+
validar_telefono
58+
validar_url

0 commit comments

Comments
 (0)