====== 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:
{{pasted_image_20230613214759.png|}}
===== 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"
{{pasted_image_20230922133620.png|}}