Skip to content

#15 - Bash #6357

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Sep 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions Roadmap/15 - ASINCRONÍA/bash/h4ckxel.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#!/bin/bash

# Función genérica que ejecuta tareas asincrónicamente con nombre y duración
function run_task() {
local name="$1"
local duration="$2"

if [[ -z "$name" || -z "$duration" ]]; then
echo -e "[!] Error: Debes proporcionar un nombre y una duración para la tarea.\n"
return 1
fi

echo -e "[+] La tarea '$name' comienza a ejecutarse y durará ${duration} segundos...\n"
sleep "$duration"
echo -e "[!] La tarea '$name' ha finalizado.\n"
}

# Función principal para ejecutar las tareas en el orden especificado
function main() {
echo -e "[+] Ejecutando las tareas en paralelo...\n"

# Ejecutar tareas C, B y A en paralelo
run_task "Tarea C" 3 &
run_task "Tarea B" 2 &
run_task "Tarea A" 1 &

# Esperar a que todas las tareas en paralelo finalicen
wait

echo -e "[+] Todas las tareas C, B y A han terminado. Iniciando la tarea D...\n"

# Ejecutar la tarea D después de que las demás terminen
run_task "Tarea D" 1
}

# Ejecutar la función principal
main
58 changes: 58 additions & 0 deletions Roadmap/16 - EXPRESIONES REGULARES/bash/h4ckxel.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
#!/bin/bash

# Script de validación utilizando expresiones regulares

string="Pepe tiene el número 1234 y 5678"
regex="[0-9]+"
numbers=$(grep -oE "$regex" <<< "$string")
echo -e "[+] Los números encontrados en la cadena de texto son: $numbers"

echo -e "\n\n================================ DIFICULTAD EXTRA ================================\n"

# Función para solicitar la entrada de usuario
solicitar_entrada() {
local mensaje="$1"
local variable="$2"
read -p "$mensaje" "$variable"
}

# Función para validar un correo electrónico
validar_email() {
solicitar_entrada "[+] Introduce un email: " email
regex_email="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"

if [[ $email =~ $regex_email ]]; then
echo -e "[+] El email introducido es válido.\n"
else
echo -e "[!] El email introducido no es válido.\n"
fi
}

# Función para validar un número de teléfono
validar_telefono() {
solicitar_entrada "[+] Introduce un número de teléfono: " telefono
regex_telefono="^\+?[0-9]{1,3}?[-. ]?\(?[0-9]{1,4}?\)?[-. ]?[0-9]{1,4}[-. ]?[0-9]{1,9}$"

if [[ $telefono =~ $regex_telefono ]]; then
echo -e "[+] El número de teléfono introducido es válido.\n"
else
echo -e "[!] El número de teléfono introducido no es válido.\n"
fi
}

# Función para validar una URL
validar_url() {
solicitar_entrada "[+] Introduce una dirección URL: " url
regex_url="^(https?://)?(www\.)?[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}(/.*)?$"

if [[ $url =~ $regex_url ]]; then
echo -e "[+] La dirección URL introducida es válida.\n"
else
echo -e "[!] La dirección URL introducida no es válida.\n"
fi
}

# Ejecución de las validaciones
validar_email
validar_telefono
validar_url