LinuxParty
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 (soS)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.
-
Scripting
- Script en Bash para pausas interactivas con timeout y confirmación
- Script para escuchar la Radio en Linux
- 🧠 Cómo forzar evitar distracciones con tus propios scripts en Linux
- Script copiacompleta2, un Script para hacer copias de seguridad completa de tu usuario.
- Iniciar una aplicación o un programa automáticamente desde el Cron en Linux
- Operaciones matemáticas en Shell Scripts
- 30 formas de validar archivos de configuración o scripts en Linux
- Operaciones artiméticas en Shell Scripts
- Cómo intercambiar el contenido de dos archivos en Linux
- Buscar directorios vacíos en Linux y borrarlos si procede.
- Shell Script Linux: Renombra quitando espacios
- Usar con crontab - último sábado del mes



