Capturar información usuario
Clase 12 de 43 • Curso de Programación en Bash Shell
Contenido del curso
Programación Shell Básica
Script Interactivos
Condicionales
Iteración
Archivos
Empaquetamiento
Funciones
Cierre del curso
Crear scripts interactivos en Bash es clave para automatizar tareas que dependen de datos del usuario con precisión y rapidez. Aquí verás, paso a paso, cómo solicitar y almacenar entradas usando dos enfoques: combinar echo + read con la variable especial REPLY y usar solo read asignando directamente a variables. Así podrás construir utilidades confiables, como un pequeño asistente para backups en Postgres.
¿Cómo capturar información del usuario en Bash de forma efectiva?
La interacción se entiende mejor con tres actores: el usuario, los datos ingresados y el procesamiento. El objetivo es pedir una opción y un nombre de archivo de backup, almacenar ambos y mostrarlos para verificar.
- Scripts interactivos: lectura de entradas para validar o ejecutar procesos específicos.
- Variables clave: option y backupname para guardar datos del usuario.
- Comandos básicos: echo, read, y la variable especial REPLY.
- Flujo típico: mostrar un mensaje, leer la entrada, almacenar y luego imprimir.
¿Qué hace la variable REPLY en Bash?
La variable REPLY almacena el último valor leído por read cuando no se indica una variable destino. Es práctica para pruebas rápidas, pero puede ser menos clara si lees múltiples entradas seguidas, porque se sobrescribe cada vez.
Ejemplo 1: combinación de echo + read usando REPLY.
#!/usr/bin/env bash
# Programa: capturar información con echo, read y REPLY
option=0
backupname=""
# Pedir opción
echo "Ingrese una opción:"
read
option="$REPLY"
# Pedir nombre del archivo de backup
echo "Ingrese el nombre del archivo del backup:"
read
backupname="$REPLY"
# Mostrar resultados
echo "Opción: $option"
echo "Backup name: $backupname"
Puntos clave: - Lecturas consecutivas sobrescriben REPLY. Guarda su contenido en variables propias inmediatamente. - Útil para scripts simples; puede volverse confuso en flujos largos.
¿Qué ventajas ofrece usar solo read con variables destino?
Leer y asignar directamente a variables con read mejora la claridad. Además, el flag -p permite mostrar el prompt directamente sin echo. En el material se menciona también el uso de -t junto a read.
Ejemplo 2: uso directo de read con variables.
#!/usr/bin/env bash
# Programa: capturar información solo con read
option=0
backupname=""
read -p "Ingrese una opción: " option
read -p "Ingrese el nombre del archivo del backup: " backupname
echo "Opción: $option"
echo "Backup name: $backupname"
Ventajas: - Menos pasos: no necesitas echo ni REPLY. - Mayor legibilidad: cada dato tiene su variable desde la lectura. - Escalable: ideal cuando pides varios valores.
¿Cómo pedir múltiples datos sin perder claridad?
- Usa un prompt claro con read -p para cada dato.
- Asigna a variables con nombres descriptivos: option, backupname.
- Muestra al final un resumen de lo ingresado para validar.
¿Qué habilidades y buenas prácticas refuerza este ejercicio?
Comprender estos comandos y patrones te ayudará a diseñar mejores utilidades en Ubuntu y entornos similares.
- Diseño de interacción: pensar en usuario, datos y procesamiento.
- Variables en Bash: inicialización, asignación tras cada read y uso seguro.
- Mensajería clara: prompts directos que indican qué ingresar.
- Ejecución: dar permisos y correr con
./script.sh.
Además, se trabajó con conceptos como:
- Script interactivo: solicita datos para tomar decisiones o ejecutar acciones.
- Impresión de resultados: confirma lo ingresado para evitar errores.
- Edición y guardado: edición del archivo y salida con :wq al terminar.
¿Tienes dudas o un caso de uso que quieras resolver con read? Cuéntalo y pensamos juntos la mejor forma de pedir y validar tus datos.