LinuxParty

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado
 

En muchas tareas de administración de sistemas necesitamos detener la ejecución de un script y esperar la intervención del usuario. Ya sea para confirmar una acción crítica o simplemente para dar tiempo antes de continuar, disponer de una pausa controlada es fundamental.

En este artículo te mostramos un script en Bash sencillo pero muy útil que permite:

  • Esperar indefinidamente hasta que el usuario pulse una tecla
  • Esperar un tiempo determinado (5, 10, 15 o 30 segundos)
  • Permitir interrumpir la espera pulsando una tecla
  • Devolver un código de salida compatible con estructuras if

⚙️ Script: espera.sh

#!/bin/bash
#
# Uso:
# if /root/bin/espera.sh ; then
#   echo "SI"
# else
#   echo "NO"
# fi

# Función de lectura
leer_tecla() {
    local timeout=$1

    if [ -z "$timeout" ]; then
        echo -n "Pulse una tecla para continuar... (o 's' o 'n' para confirmar): "
        read -n 1 key
    else
        echo -n "Pulse una tecla ($timeout s)... (o 's' o 'n' para confirmar): "
        read -t "$timeout" -n 1 key
    fi

    # Si hay timeout, la variable puede quedar vacía
    # (Esta parte es opcional, yo se la tengo desactivado, así comentado.
    # if [ -z "$key" ]; then
    #     echo -e "\nTiempo agotado."
    #     return 1
    # fi
    # echo ""

    if [ "$key" == 's' ] || [ "$key" == 'S' ]; then
        return 0
    else
        return 1
    fi
}

# Control de parámetros
case "$1" in
    -5)
        leer_tecla 5
        ;;
    -10)
        leer_tecla 10
        ;;
    -15)
        leer_tecla 15
        ;;
    -30)
        leer_tecla 30
        ;;
    "")
        leer_tecla
        ;;
    *)
        echo "Uso: $0 [-5 | -10 | -15 | -30]"
        exit 1
        ;;
esac

exit $?

🚀 ¿Qué hace este script?

Este script implementa una pausa interactiva que puede funcionar en dos modos:

🔹 Modo interactivo (sin parámetros)

./espera.sh
  • Espera indefinidamente
  • El usuario decide cuándo continuar
  • Ideal para validaciones manuales

🔹 Modo con temporizador

./espera.sh -10
  • Espera un máximo de 10 segundos
  • Se puede interrumpir en cualquier momento pulsando una tecla
  • Si no hay interacción → continúa automáticamente

🔁 Integración en scripts

Una de las grandes ventajas es que devuelve códigos de salida estándar:

  • 0 → confirmación positiva (s o S)
  • 1 → cualquier otra tecla o timeout

Esto permite integrarlo fácilmente en automatizaciones:

if espera.sh -5 ; then
  echo "Acción confirmada"
else
  echo "Acción cancelada o timeout"
fi

💡 Casos de uso reales

Este tipo de script resulta especialmente útil en:

  • Scripts de despliegue antes de aplicar cambios críticos
  • Automatizaciones con validación manual opcional
  • Procesos de mantenimiento en servidores
  • Flujos de backup o borrado de datos
  • Sistemas híbridos (automatización + intervención humana)

🧠 Ventajas clave

  • ✔️ Ligero y sin dependencias
  • ✔️ Compatible con cualquier sistema Linux
  • ✔️ Fácil de integrar en scripts existentes
  • ✔️ Mejora el control y la seguridad en tareas automatizadas

🔧 Instalación

chmod +x espera.sh
mv espera.sh /usr/local/bin

📌 Conclusión

A veces, un pequeño script puede marcar una gran diferencia en la seguridad y control de nuestros sistemas. Este tipo de pausas inteligentes permiten combinar automatización con supervisión humana de forma sencilla y efectiva.

Si trabajas habitualmente con Bash, este script es uno de esos pequeños “must-have” que acaban formando parte de tu toolkit diario.

No estás registrado para postear comentarios



Redes:



   

 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

 

Tutorial de Linux

Top 15 artículos por Fecha

Viendo artículos de: Febrero de 2026

Filtro por Categorías