GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo crear y llamar funciones en Bash

Una guía rápida sobre cómo crear y llamar funciones en Bash.

Una función es un bloque de código reutilizable que se utiliza para realizar alguna acción. Con funciones, obtenemos una mejor modularidad y un alto grado de reutilización de código.

Bash proporciona algunas funciones integradas como echo y read , pero también podemos crear nuestras propias funciones.

Creando una Función en Bash

Hay dos formas de crear funciones en Bash:

Una forma es simplemente usar el nombre de la función, por ejemplo:

functionName(){
  // scope of function
}

Versión compacta:

functionName(){ echo "hello"; }

Otra forma es declarar una función usando el function palabra clave:

function functionName {
  // scope of function
}

Versión compacta:

function functionName { echo "hello"; }

Observe cómo no necesitamos el () cuando se usa el function palabra clave para crear una función.

Puntos importantes a tener en cuenta sobre las funciones de Bash:

  • El código entre llaves {} es el cuerpo y el alcance de la función
  • Al llamar a una función, solo usamos el nombre de la función desde cualquier parte del script bash
  • La función debe definirse antes de que pueda usarse
  • Al usar la versión compacta, el último comando debe tener un punto y coma ;

Ejemplo:

El siguiente código crea una función que imprime "Hello World" en la consola. El nombre de la función se llama printHello :

#!/bin/bash

printHello(){
    echo "Hello World!"
}

Llamar a una función en Bash

¿Cómo llamamos a la función anterior? Todo lo que necesita hacer en su script bash es escribir el nombre de la función y se llamará.

Por ejemplo:

#!/bin/bash

printHello(){
    echo "Hello World!"
}

# Call printHello function from anywhere in the script by writing the name

printHello

Salida:

"Hello World"

Pasar argumentos

La función anterior printHello() no tiene ningún parámetro. Cada vez que lo llamamos, obtenemos la salida "Hello World". Pero, ¿y si quisiéramos crear una función más genérica? Por ejemplo, podemos llamar a la función con algún argumento e imprimirá lo que le enviemos.

Hay dos formas de hacer esto.

Primero podemos modificar el printHello() función para imprimir los argumentos que se le pasan:

Por ejemplo:

#!/bin/bash

printAny(){
    echo "Hello " $1
}

printAny World
printAny DevQa
printAny I love coding!

Salida:

Hello World
Hello DevQA
Hello I

Observe cómo la tercera declaración de impresión printAny I love coding! solo emitió "Hola, yo".

Esto se debe a que nuestra función está diseñada para tomar solo 1 parámetro $1 . La palabra "¡Me encanta programar!" en realidad son 3 parámetros.

Si quisiéramos imprimirlo todo, tendríamos que poner comillas alrededor del texto

Por ejemplo:

#!/bin/bash

printAny(){
    echo "Hello " $1
}

printAny "I love coding!"

Salida:

Hello I love coding

Otro ejemplo, también podemos pasar dígitos:

#!/bin/bash

add() {
    result=$(($1 + $2))
    echo "Result is: $result"
}

add 1 2

Salida:

Result is: 3

Valores devueltos

Las funciones de Bash también pueden devolver valores.

Por ejemplo:

#!/bin/bash

add() {
    result=$(($1 + $2))
}

add 1 2
echo "The sum is: "$result

Salida:

The sum is: 3

Otra forma de devolver valores de una función es asignar el resultado a una variable que se puede usar cuando sea necesario.

Por ejemplo:

#!/bin/bash

add () {
  local result=$(($1 + $2))
  echo "$result"
}

result="$(add 1 2)"
echo "The sum is: "$result

Salida:

The sum is: 3

Linux
  1. Cómo definir y usar funciones en Linux Shell Script

  2. Cómo crear scripts Bash usando variables externas y scripts incrustados

  3. ¿Cómo llamar a una función Bash en Bash Script dentro de Awk?

  4. Bash Beginner Series #9:Uso de funciones en Bash

  5. Cómo crear combinaciones de teclas de funciones y macros de Linux en un archivo .intputrc

Cómo crear un tema de SNS y un suscriptor en AWS

Bash Scripting - Funciones explicadas con ejemplos

Cómo crear documentos con scripts Bash

Cómo crear y restaurar instantáneas de máquinas virtuales en VirtualBox

Cómo crear y usar un archivo de intercambio en Linux

Bash Scripting Part6 - Crear y usar funciones de Bash