Tabla de Contenidos
Funciones en bash
En este ejemplo, se define una función llamada “mi_funcion” que simplemente muestra un mensaje por pantalla. Luego, se llama a la función:
#!/bin/bash # Definición de la función mi_funcion() { echo "¡Hola desde la función!" } # Llamada a la función mi_funcion
En este ejemplo, la función “saludar” recibe un parámetro (en este caso, el nombre de una persona) y muestra un saludo personalizado. Se realiza una llamada a la función con diferentes argumentos:
#!/bin/bash # Definición de la función con parámetros saludar() { nombre=$1 echo "¡Hola, $nombre!" } # Llamada a la función con un argumento saludar "Juan" # Llamada a la función con otro argumento saludar "María"
En este ejemplo, la función “sumar” recibe dos parámetros, realiza la suma y almacena el resultado en una variable local. Luego, se muestra el resultado por pantalla fuera de la función:
#!/bin/bash # Definición de la función con valor de retorno sumar() { local resultado=$(( $1 + $2 )) echo $resultado } # Llamada a la función y almacenamiento del valor de retorno resultado_suma=$(sumar 5 3) echo "El resultado de la suma es: $resultado_suma"
VARIABLES LOCALES Y GLOBALES EN FUNCIONES / EXTRAER CONTENIDO DE UNA FUNCIÓN EN BASH
Podemos declarar variables locales o globales dentro de una función para luego poder utilizarlas fuera de la función. Por lo que hay que diferenciar entre funciones locales y globales:
#!/bin/bash my_function() { local my_variable="Hola, soy una variable local" global_variable="¡Hola, soy una variable global!" } # Llamamos a la función para que se ejecute y declare las variables my_function # Imprimimos el valor de la variable local (solo dentro de la función, por lo que no se imprimirá) echo "Valor de la variable local: $my_variable" # Imprimimos el valor de la variable global (accesible fuera de la función) echo "Valor de la variable global: $global_variable"
Y este es el resultado:
ENVÍO DE PARÁMETROS EN LAS FUNCIONES
Podemos hacerlo de la siguiente forma, donde tenemos una función con parámetros que reciba la información desde fuera de la función:
#!/bin/bash # Definir una función que toma dos parámetros function saludar { nombre=$1 edad=$2 echo "Hola, $nombre. Tienes $edad años." } # Llamar a la función y pasarle dos parámetros saludar "Juan" 30
Vamos a hacer otro ejemplo donde una función reciba un archivo como parámetro y vea el tamaño que ocupa:
#!/bin/bash # Función que verifica el tamaño de un archivo dado como parámetro verificar_tamaño_archivo() { archivo="$1" # Verificar si el archivo existe if [ -e "$archivo" ]; then # Utilizar du para obtener el tamaño del archivo en formato legible espacio=$(du -h "$archivo" | awk '{print $1}') echo "El tamaño del archivo $archivo es: $espacio" else echo "El archivo $archivo no existe." fi } # Llamar a la función y pasar el nombre del archivo como parámetro verificar_tamaño_archivo "$1"

