Crear funciones y Paso de Argumentos

Clase 39 de 43Curso de Programación en Bash Shell

Contenido del curso

Resumen

Aprende a estructurar funciones en Bash con confianza: define, llama y pasa argumentos dentro de un menú de opciones. Aquí verás cómo organizar el código, documentarlo con comentarios y validar el flujo desde la captura de datos hasta la impresión de parámetros, usando ejemplos como instalar/desinstalar Postgres y gestionar respaldos.

¿Qué es una función en Bash y cómo se define?

Una función en Bash se declara con un nombre, paréntesis vacíos y llaves. No se ponen argumentos en los paréntesis; todo el código va dentro de las llaves. Además, deben declararse antes de ser llamadas para evitar errores en su uso. Es clave mantener los espacios correctos y añadir comentarios descriptivos del propósito.

¿Cómo crear funciones para Postgres y respaldos?

A partir del menú de opciones existente, se definen funciones específicas para cada acción. Se usa echo para mostrar mensajes y comentarios para documentar su objetivo.

# Función para instalar Postgres instalar_postgres() { # Función para instalar Postgres. echo "Instalar Postgres" } # Función para desinstalar Postgres desinstalar_postgres() { # Función para desinstalar Postgres. echo "Desinstalar Postgres" } # Función para sacar un respaldo sacar_respaldo() { # Función para sacar un respaldo. echo "Sacar respaldo" echo "Directorio de respaldo: $1" } # Función para restaurar un respaldo restaurar_respaldo() { # Función para restaurar un respaldo. echo "Restaurar respaldo" echo "Directorio de backup: $1" }

¿Cómo llamar funciones desde un menú de opciones con case?

Se integra el flujo en el menú: cada opción ejecuta la función correspondiente. Así se sustituye el texto dentro de case por llamadas a funciones.

case "$opcion" in 1) instalar_postgres ;; 2) desinstalar_postgres ;; 3) sacar_respaldo "$directorio_backup" ;; 4) restaurar_respaldo "$directorio_backup" ;; 5) exit ;; *) echo "Opción no válida" ;; esac

¿Cómo solicitar datos y pasar argumentos a una función?

Para probar el paso de parámetros, se solicita información al usuario y se envía como argumento. Bash permite declarar y asignar variables en el momento de usarlas.

# Solicitar el directorio de backup y pasarlo como argumento read -p "Cuál es el directorio de backup: " directorio_backup # Enviar el parámetro a las funciones sacar_respaldo "$directorio_backup" restaurar_respaldo "$directorio_backup"

En las funciones, el valor recibido se accede con $1 y se imprime para verificar que llegó correctamente.

¿Qué prácticas y notas debes considerar?

El enfoque se centra en construir el esqueleto de funciones y probar el paso de argumentos antes de implementar la lógica completa. Se reutiliza el menú de opciones y se prepara el terreno para el reto final del módulo.

  • Definir primero, llamar después: las funciones deben declararse al inicio del script.
  • Documentar con comentarios: explica qué hace cada función.
  • Cuidar los espacios: evita errores por sintaxis en Bash.
  • Variables flexibles: puedes crear y asignar en línea sin declararlas antes.
  • Entrada interactiva: solicita el “directorio de backup” y úsalo como parámetro.
  • Verificación rápida: imprime $1 dentro de las funciones para validar el flujo.
  • Formato de salida: si hace falta, añade saltos con backslash n para mejorar la legibilidad.
  • Contexto del entorno: trabajo en servidor Ubuntu y continuidad tras usar rsync en ejercicios previos.

¿Qué reto se propone y cómo aplicarlo?

El reto principal consiste en integrar todo lo aprendido: menú de opciones, funciones bien definidas, captura de datos y paso de argumentos para ejecutar tareas como instalar/desinstalar Postgres y gestionar respaldos. Primero se arma el cuerpo de las funciones y se valida el flujo; luego se implementan los comandos definitivos.

¿Tienes dudas o quieres compartir tu avance con funciones y parámetros en Bash? Comenta tu experiencia y qué parte del menú automatizaste primero.