Crear funciones y Paso de Argumentos

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

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.