50% de descuento Todos los planes, tiempo limitado. A partir de $2.48/mo
Quedan 11 minutos
Servidores y SO

Funciones de Bash explicadas: sintaxis, ejemplos y casos de uso

Kelly Watson By Kelly Watson 11 minutos de lectura Actualizado el 14 de diciembre de 2025
Ilustración 3D abstracta de bloques de código azul brillante que se ensamblan en una estructura modular, que representa funciones Bash

Las funciones Bash agrupan comandos relacionados bajo un solo nombre. Cuando llamas ese nombre, se ejecuta todo el bloque. Puede pasar argumentos para personalizar el comportamiento y devolver valores para comunicar resultados. Esto mantiene su código limpio y fácil de mantener.

Linux domina los entornos de servidores a nivel mundial, por lo que dominar las funciones de Bash es ahora más importante que nunca. Las funciones convierten scripts desordenados en automatización limpia y reutilizable.

Esta guía lo guía desde la sintaxis básica hasta casos de uso avanzados. Aprenderá cómo declarar funciones, pasar parámetros, manejar valores de retorno y ver diez ejemplos prácticos que puede usar en sus propios scripts.

TL;DR

  • Las funciones Bash son bloques de código con nombre que puedes reutilizar en tus scripts
  • Definir funciones usando nombre_función() {comandos; } sintaxis
  • Pasar argumentos usando $1, $2, $3 parámetros posicionales
  • Las funciones mejoran la legibilidad, la modularidad y el mantenimiento del código
  • Usar devolver para salir de funciones y comunicar códigos de estado (0 = éxito, distinto de cero = falla)
  • Las funciones se pueden compartir entre scripts usando fuente or exportar -f
  • Los ejemplos prácticos incluyen copia de seguridad de archivos, monitoreo de disco, validación de entradas y verificación de servicios.

¿Qué son las secuencias de comandos Bash?

Ilustración 3D de un pergamino digital con código Bash brillante que se escribe a sí mismo, lo que representa la automatización de las secuencias de comandos Bash.

Las secuencias de comandos Bash son un método de automatización de tareas utilizando el shell Bash. Sirve como interfaz de línea de comandos predeterminada para Linux y sigue siendo una herramienta estándar en macOS. Un script Bash es un programa codificado en el lenguaje de scripting Bash, que se puede ejecutar en una terminal o como un archivo de script independiente.

Con El uso de escritorio Linux crece constantemente y el sistema operativo que domina los entornos de servidores en todo el mundo, las habilidades de programación de scripts Bash se han vuelto valiosas para los profesionales de TI. El lenguaje se integra bien con herramientas DevOps como Docker, Kubernetes y canalizaciones de CI/CD.

Las secuencias de comandos Bash le permiten realizar tareas desde comandos simples hasta automatización compleja y administración de sistemas. Puede automatizar tareas repetitivas, desarrollar scripts de mantenimiento, construir canales de implementación, administrar sistemas de software y manipular datos.

¿Qué es una función Bash?

Ilustración digital futurista que muestra datos de línea de comando desordenados organizados por una puerta de procesamiento brillante, que simboliza cómo funciona una función Bash, con un espacio vacío a la izquierda.

Una función Bash se puede definir como un conjunto de comandos que se definen dentro de un script Bash o se configuran interactivamente en el símbolo del sistema, según el caso de uso. Una vez definida, una función Bash se puede llamar varias veces dentro del script o en otros scripts, como un comando de shell normal.

Las funciones de Bash le permiten crear bloques de código reutilizables que pueden realizar operaciones complejas, organizar su código y simplificar sus scripts. Puede pasar argumentos a una función Bash y luego usarlos dentro de la función para realizar operaciones. Las funciones Bash devuelven valores que puede usar en otras partes de su script.

Cubriremos varios estilos de implementación específicos, incluyendo función_simple para lógica básica, entradas_simples para el manejo de argumentos y estructuras avanzadas como fibonnaci_recursion.

Fundamentos de las funciones de Bash Es importante para cualquier administrador de sistemas o ingeniero de DevOps que trabaje con automatización. Las siguientes secciones cubren cada uno de estos tipos en detalle.

¿Por qué utilizar funciones Bash?

Engranaje azul brillante con símbolos de optimización que impulsan una máquina de códigos, que representa la eficiencia y la velocidad obtenidas mediante el uso de funciones Bash.

Ahora que ya hemos cubierto la definición de funciones Bash, repasemos sus principales ventajas. Esta sección le ayuda a comprender dónde las funciones son más útiles.

Reutilizabilidad

Creas una función Bash y tienes una herramienta poderosa. Puede escribir un bloque de código una vez y reutilizarlo varias veces dentro de su secuencia de comandos o incluso en otras secuencias de comandos.

Esto hace que su código sea más eficiente y ahorra tiempo al eliminar la duplicación. Mantener su código se vuelve más simple ya que solo necesita cambiar la función en un lugar.

Legibilidad

Los guiones complejos pueden resultar difíciles de descifrar. Las funciones Bash resuelven esto dividiendo el script en partes más pequeñas y manejables.

Cada función tiene un propósito específico con un nombre descriptivo que explica su función. Esto le ayuda a usted y a otros a comprender y mantener el código más fácilmente.

Modularidad

Las funciones organizan su código. Puede dividir la lógica en módulos más pequeños, lo que mantiene la estructura de su script limpia y fácil de administrar.

Y si necesita agregar una nueva característica, puede hacerlo sin alterar otras partes de su secuencia de comandos. Cuando llega el momento de eliminar o modificar una funcionalidad, el resto del script permanece intacto.

Parámetros de la función Bash

Puede pasar argumentos o parámetros a sus funciones. Estos argumentos permiten que sus funciones se adapten y realicen diferentes acciones según las entradas que reciben.

Esto abre muchas posibilidades y al mismo tiempo hace que sus funciones sean más versátiles y adaptables. En lugar de escribir código similar varias veces, escribe una función que maneja diferentes entradas.

¿Cómo y dónde utilizar las funciones de Bash?

Diagrama de flujo de vidrio 3D que muestra la ejecución del script bifurcándose en un bloque de funciones y regresando, visualizando cómo se usan las funciones Bash en el flujo lógico.

Ahora, seamos un poco técnicos con nuestra definición y comencemos con un breve ejemplo de cómo crear funciones Bash. La siguiente sintaxis se puede utilizar en entornos basados ​​en Unix. Si trabajas en Windows, puedes instalar Linux Bash en Windows 10 seguir estos ejemplos.

Creando una función Bash

Comience usando la siguiente estructura de comando:

nombre_función () {

    # comandos van aquí

}

 

Una vez que haya creado la función, podrá usarla en su código en cualquier momento. Aquí hay un ejemplo práctico:

saludar () {

    echo "¡Hola, $1!"

}

 

Llame a esta función con saludar mundo para mostrar "¡Hola, mundo!" El $1 representa el primer argumento pasado a la función.

A continuación se muestran algunos ejemplos más prácticos que puede utilizar en sus propios scripts:

# Crea una copia de seguridad de cualquier archivo

archivo_copia de seguridad () {

    cp “$1” “$1.bak”

    echo “Copia de seguridad creada: $1.bak”

}

 

# Comprobar si existe un directorio, crearlo si no existe

asegurar_dir () {

    si [ ! -d “$1” ]; entonces

        mkdir-p “$1”

        echo “Directorio creado: $1”

    fi

}

 

# Registrar mensajes con marcas de tiempo

mensaje_log () {

    echo "[$(fecha '+%Y-%m-%d %H:%M:%S')] $1"

}

 

Usted define estas funciones Bash personalizadas una vez y las llama cuando sea necesario a lo largo de su secuencia de comandos.

Conceptos básicos de sintaxis de funciones

Las funciones se comportan como miniscripts dentro de su script principal, pero comparten la memoria del shell. Tenga en cuenta estos tres comportamientos específicos al escribirlos.

Alcance variable (local versus global)

Las variables dentro de las funciones son globales por defecto. si defines mi_var=”prueba” dentro de una función, anula cualquier existente mi_var en tu guión. Utilice siempre local Confinar variables a la función evita efectos secundarios:

local my_var=”valor”

Parámetros posicionales

Las funciones leen argumentos usando los mismos $1, $2, y $@ variables como guiones. Estos son locales para la función y se restablecen cuando la función sale. No se puede acceder a los argumentos originales del script dentro de la función a menos que los pase explícitamente.

Valores de retorno

Las funciones Bash no devuelven datos como las funciones de Python o JavaScript. El devolver El comando solo establece un estado de salida (0-255) para indicar éxito o fracaso. Para devolver datos reales (como una cadena o un cálculo), eco el resultado y capturarlo al llamar a la función:

resultado=$(mi_función)

Los 10 mejores ejemplos útiles de funciones Bash

Ahora que comprende las funciones de Bash y cómo crearlas, aquí hay diez ejemplos prácticos que puede agregar a sus scripts. Cada función resuelve un problema común y demuestra la estructura, los argumentos y los valores de retorno adecuados.

1. Función de copia de seguridad de archivos

Crea una copia de seguridad con marca de tiempo de cualquier archivo:

archivo_copia de seguridad () {

    archivo local =”$1″

    copia de seguridad local =”${archivo}.$(fecha +%Y%m%d_%H%M%S).bak”

    

    si [ -f “$archivo” ]; entonces

        cp “$archivo” “$copia de seguridad”

        echo “Copia de seguridad creada: $copia de seguridad”

        regresar 0

    demás

        echo "Error: archivo no encontrado"

        regresar 1

    fi

}

 

Uso: archivo_copia de seguridad /etc/nginx/nginx.conf

2. Comprobador de directorio

Comprueba si existe un directorio y lo crea si es necesario:

asegurar_dir () {

    directorio local =”$1″

    

    si [ ! -d “$directorio” ]; entonces

        mkdir -p “$dir”

        echo “Creado: $dir”

    fi

}

 

Uso: asegurar_dir /var/log/miaplicación

3. Registrador con marca de tiempo

Agrega marcas de tiempo para registrar mensajes para depuración:

mensaje_log () {

    nivel local=”$1″

    mensaje local=”$2″

    echo “[$(fecha ‘+%Y-%m-%d %H:%M:%S’)] [$nivel] $mensaje”

}

 

Uso: log_message “INFO” “Secuencia de comandos iniciada”

4. Monitor de espacio en disco

Comprueba el uso del disco y advierte si supera un umbral:

check_disk_space () {

    umbral local =”${1:-80}”

    uso local =$(df / | tail -1 | awk '{print $5}' | tr -d '%')

    

    si [ “$uso” -gt “$umbral” ]; entonces

        echo "Advertencia: uso del disco en ${usage}%"

        regresar 1

    fi

    regresar 0

}

 

Uso: check_disk_space 90

5. Validador de entrada

Valida que la entrada del usuario no esté vacía:

validar_entrada () {

    entrada local=”$1″

    nombre local =”$2″

    

    si [ -z “$entrada” ]; entonces

        echo "Error: $nombre no puede estar vacío"

        regresar 1

    fi

    regresar 0

}

 

Uso: validar_input “$nombre de usuario” “Nombre de usuario”

6. Comprobador de estado del servicio

Comprueba si un servicio se está ejecutando e informa el estado:

check_service () {

    servicio local =”$1″

    

    si systemctl está activo –silencio “$servicio”; entonces

        echo "$el servicio se está ejecutando"

        regresar 0

    demás

        echo "$ el servicio no se está ejecutando"

        regresar 1

    fi

}

 

Uso: check_service nginx

7. Extractor de extensiones de archivos

Extrae la extensión de un nombre de archivo:

get_extension() {

    nombre de archivo local =”$1″

    echo “${nombre de archivo##*.}”

}

 

Uso: text=$(obtener_extensión “documento.pdf”)

8. Recortadora de hilo

Elimina los espacios en blanco iniciales y finales de las cadenas:

trim_string () {

    cadena local = ”$ 1 ″

    str="${str#"${str%%[![:espacio:]]*}"}"

    str="${str%"${str##*[![:espacio:]]}"}"

    eco "$cadena"

}

 

Uso: clean=$(trim_string "hola mundo")

9. Archivador de archivos seguro

Mueve un archivo a un directorio $HOME/.trash personalizado en lugar de eliminarlo permanentemente. Agrega una marca de tiempo al nombre del archivo para evitar sobrescribir copias de seguridad anteriores.

eliminación_segura() {

    archivo local =”$1″

    papelera local =”$HOME/.trash”

    # Agregar marca de tiempo para evitar sobrescribir archivos existentes

    local new_name=”$(nombre base “$archivo”)_$(fecha +%s)”

    

    mkdir -p “$basura”

 

    si [ -e “$archivo” ]; entonces

        mv “$archivo” “$basura/$nuevo_nombre”

        echo “Movido al archivo: $file -> $trash/$new_name”

    demás

        echo "Error: $archivo no encontrado"

        regresar 1

    fi

}

 

Uso: safe_remove antiguo_script.sh

 

10. Reportero de estado

Demuestra el mecanismo de retorno de la función Bash para el manejo de errores. El valor de retorno de la función Bash indica éxito (0) o fracaso (distinto de cero):

datos_proceso () {

    archivo local =”$1″

    

    si [ ! -f “$archivo” ]; entonces

        regresar 1

    fi

    

    # Procesar el archivo

    gato “$archivo” | baño -l

    regresar 0

}

 

# Verifique el valor de retorno

datos_proceso “datos.txt”

si [$? -ecuación 0 ]; entonces

    echo "Procesamiento completo"

demás

    echo "Error de procesamiento"

fi

 

El $? La variable captura el estado de salida del último comando o llamada de función.

Función Objetivo Característica clave
archivo_copia_de_copia de seguridad Crear copias de seguridad de archivos Nomenclatura con marca de tiempo
asegurar_dir Gestión de directorios Crea si falta
mensaje_registro Explotación florestal Prefijo de marca de tiempo
check_disk_space Monitoreo del sistema Alertas de umbral
validar_entrada Validación de entrada Verificación de cadena vacía
check_service Monitoreo de servicios integración del sistema
obtener_extensión análisis de cadenas Ampliación de parámetros
recortar_cadena limpieza de cuerdas Eliminación de espacios en blanco
eliminación_segura Eliminación segura directorio de basura
datos_proceso Manejo de errores Valores de retorno

Ejecutar funciones Bash en un VPS

Las funciones de Bash se vuelven poderosas cuando se ejecutan en un entorno de servidor dedicado. Nuestro VPS Linux le brinda acceso completo a la raíz para personalizar su entorno de shell, crear bibliotecas de funciones para todo el sistema y automatizar las tareas de administración del servidor sin restricciones.

Con un VPS, puede almacenar funciones reutilizables en /etc/perfil.d/ para todos los usuarios, programe scripts basados ​​en funciones mediante trabajos cron y cree canales de automatización para implementación y mantenimiento. Ofrecemos servidores en 12 ubicaciones globales con velocidades de red de hasta 40 Gbps y memoria DDR5, lo que significa una ejecución de scripts más rápida y un procesamiento de datos más fluido.

Este nivel de control hace que un VPS sea ideal para cualquiera que se tome en serio el scripting de shell y la automatización de sistemas.

Conclusión

Las funciones de Bash son clave para crear scripts modulares y reutilizables. Le permiten agrupar comandos relacionados y encapsular una lógica compleja para que su código sea más fácil de leer y mantener. Si administra la infraestructura de la nube, automatiza los procesos de implementación o maneja tareas rutinarias de administración del sistema, las funciones le ayudan a mantener sus scripts organizados y eficientes.

En este artículo, cubrimos los conceptos básicos de las funciones Bash, incluido cómo definirlas y llamarlas, diez ejemplos prácticos de funciones y casos de uso comunes para ayudarlo a comenzar con sus propios proyectos de automatización.

Combinado con estructuras de control como la Bash si declaración, las funciones le brindan los elementos básicos para una automatización potente. Al utilizar funciones Bash en sus scripts, puede escribir código más limpio y modular que sea más fácil de entender y mantener.

Preguntas frecuentes

¿Pueden las funciones Bash tener variables locales?

Sí. Las funciones Bash pueden tener variables locales usando la palabra clave local. Esto restringe el alcance de la variable a la función, evitando que afecte a variables con el mismo nombre fuera de la función.

¿Pueden las funciones Bash ser recursivas?

Sí, las funciones Bash pueden ser recursivas. Bash tiene un tamaño de pila de llamadas predeterminado relativamente pequeño, por lo que, dependiendo de las funciones recursivas que tenga en mente, es posible que deba aumentarlo usando el comando ulimit -s antes de la ejecución.

¿Puedo usar funciones Bash en otros scripts?

Sí, puede compartir funciones Bash entre scripts utilizando el comando fuente (o su abreviatura). Al obtener un archivo que contiene las definiciones de sus funciones, esas funciones están disponibles en el script de llamada. Para procesos secundarios, utilice export -f nombre_función para que la función sea accesible.

¿Puedo usar funciones Bash en canalizaciones?

Sí, pero requiere pasos específicos para comandos externos. Dentro de un script, puede canalizar datos directamente a una función (por ejemplo, archivo cat | my_function). Sin embargo, comandos como xargs o find -exec se ejecutan en un entorno nuevo. Para usar una función allí, debe exportarla (exportar -f my_func) y luego invocar explícitamente a Bash (por ejemplo, xargs bash -c 'my_func “$@”‘).

¿Qué es una función de script de shell?

Una función de script de shell es un bloque de código definido dentro de un script de shell que tiene un propósito específico y se puede llamar desde varias partes del script. Las funciones ofrecen un gran valor en términos de modularidad del código, mejor reutilización y mantenimiento más sencillo. En el contexto de las secuencias de comandos Bash, las funciones se encapsulan dentro de la secuencia de comandos general.

Compartir

Más del blog

Sigue leyendo.

Las mejores aplicaciones autohospedadas que puede ejecutar con Imagen de portada de Cosmos Cloud con paneles de aplicaciones alrededor de un panel de Cosmos.
Servidores y SO

Las mejores aplicaciones autohospedadas que puede ejecutar con Cosmos Cloud: archivos, medios, contraseñas, automatización y más.

Tal vez hayas configurado Cosmos Cloud y ahora quieras ver qué aplicaciones combinan bien con él, o tal vez aún no te hayas decidido por Cosmos y solo quieras ver qué tan bien se adapta a tu trabajo.

Nick PlataNick Plata 16 minutos de lectura
Portainer vs Cosmos Cloud para administrar aplicaciones Docker cubren un diagrama de configuración híbrida y operaciones de neón frente a bloques de acceso.
Servidores y SO

Portainer vs Cosmos Cloud: la mejor opción para la gestión de aplicaciones Docker

Si ya conoce Docker y solo desea una forma más limpia de ejecutar una pila de aplicaciones en crecimiento, aquí está la respuesta breve a Portainer vs Cosmos Cloud. Portainer es la elección más fuerte para la dirección

Nick PlataNick Plata 14 minutos de lectura
Gráfico de características de Cosmos Cloud, CasaOS y Umbrel que muestra tres rutas autohospedadas dentro de un mundo abstracto de red en la nube.
Servidores y SO

Cosmos Cloud vs CasaOS vs Umbrel: ¿Qué plataforma autohospedada se adapta a su configuración?

La respuesta corta es que CasaOS sigue siendo el lugar más fácil para comenzar, Umbrel tiene la sensación más limpia y Cosmos Cloud tiene más sentido una vez que desea un control más estricto sobre el dominio.

Nick PlataNick Plata 11 minutos de lectura

¿Listo para implementar? Desde $2,48/mes.

Nube independiente, desde 2008. AMD EPYC, NVMe, 40 Gbps. Devolución de dinero en 14 días.