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: # ------------------------ # Ejemplo 1 # if /root/bin/espera.sh -3; then # echo "SI" # else # echo "NO" # fi # ------------------------- # Ejemplo 2 # if espera.sh; then echo "si"; else echo "no"; fi # leer_tecla() { local timeout=${1:-} local key="" local restante estado if [ -z "$timeout" ]; then printf "Pulse una tecla para continuar... (s/n): " read -r -s -n 1 key else printf "Pulse una tecla (s/n). Cuenta atrás: " for ((restante=timeout; restante>0; restante--)); do if (( restante < timeout )); then printf ", " fi printf "%s" "$restante" # Espera hasta un segundo, atendiendo al teclado. if read -r -s -t 1 -n 1 key; then break else estado=$? # Bash devuelve un estado >128 al agotar el tiempo. # Si es otro error, como fin de entrada, terminamos. if (( estado <= 128 )); then break fi fi done fi printf "\n" case "$key" in s|S) return 0 ;; *) return 1 ;; esac } case "${1:-}" in -3|-5|-10|-15|-30) leer_tecla "${1#-}" ;; "") leer_tecla ;; *) printf "Uso: %s [-3 | -5 | -10 | -15 | -30]\n" "$0" >&2 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
- Monitoriza el uso de CPU y memoria en Linux con el script queprocesos.sh
- Cómo hacer operaciones matemáticas en Bash: cálculos con enteros, decimales, `bc` y `awk`
- Script para realizar copias de seguridad en un servidor en Producción con Dominios en Plesk
- 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
- Cómo instalar y habilitar el completado automático de Bash 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



