Tutorial de funciones de Bash

Tutorial de funciones de Bash
Una función bash es una colección de comandos que se pueden ejecutar repetidamente. El objetivo de la función es hacer que los scripts de Bash sean más fáciles de leer y evitar que escriba el mismo script a menudo. Las funciones bash están considerablemente limitadas en comparación con las de la mayoría de los lenguajes de programación. Para la ejecución paso a paso, este archivo contiene varios comandos. Aunque estos comandos se pueden ingresar simplemente en la línea de comando, es más conveniente guardar todos los comandos interconectados para una operación determinada en un solo archivo desde una perspectiva de reutilización. Podemos utilizar ese archivo para ejecutar el conjunto de comandos especificado, una sola vez o varias veces, dependiendo de nuestras necesidades. Pasaremos por los fundamentos de las funciones de Bash en esta lección y demostraremos cómo usarlas en scripts de shell.

Ejemplo 1

Una función es una sección de código que se puede llamar varias veces para llevar a cabo tareas específicas en la programación. La longitud del código disminuye y se proporciona la modularidad del programa. La ilustración más básica de la aplicación de una función en scripting bash se muestra en lo siguiente:

#!/bin/bash
Bashfunction ()
Echo hola, mis amigos de Linux

Basura

En el script anterior, hemos definido la función Basura. Dentro de él, tenemos una declaración de eco. Entonces, llamamos a la función Basura Para ejecutar la función.

La salida de la función básica bash se imprime en el terminal:

linuxhint@hp34: ~ $ chmod +x prueba.mierda; ./prueba.mierda
Hola mis amigos de Linux
linuxhint@hp34: ~ $

Ejemplo 2

Podemos aprobar argumentos y procesar datos con funciones bash como en otros lenguajes de programación. Similar a pasar parámetros de línea de comando a un script bash, podemos ingresar datos en la función. Debemos agregar los parámetros inmediatamente siguiendo el nombre de la función para proporcionar cualquier número de argumentos a la función bash. Al llamar a la función, podemos pasar los argumentos directamente y usar los valores $ 1, $ 2, ... $ N para acceder a ellos dentro de la función.

#!/bin/bash
multiply_two_numbers ()
Producto local = $ (($ 1*$ 2))
El producto de eco de $ 1 y $ 2 es $ producto

multiply_two_numbers 5 2

En el script anterior, hemos creado la función multiply_two_numbers. En la función, hemos creado la variable producto y asignó la ecuación del producto a calcular. El comando echo se usa para imprimir el resultado del cálculo para el producto de dos valores. Después de eso, hemos proporcionado los dos argumentos, 5 y 2, asignados a la función multiply_two_numbers.

El shell terminal después de la ejecución del script se muestra en la siguiente imagen:

linuxhint@hp34: ~ $ chmod +x prueba.mierda; ./prueba.mierda
El producto de 5 y 2 es 10
linuxhint@hp34: ~ $

Ejemplo 3

La mayoría de los lenguajes de programación admiten la idea de que las funciones que devuelven un valor. Implica que la función debe devolver los datos al lugar desde el que se llama. Las funciones bash no admiten devolver un valor cuando se les llama, a diferencia de las funciones en lenguajes de programación reales. Sin embargo, nos dan la opción de establecer un estado de retorno, que funciona de manera similar al estado de salida utilizado por un programa o comando para finalizar.

La variable ps? se asigna la palabra devolver, que se puede emplear para describir el estado actual del regreso. La función termina mediante la declaración de retorno, que también sirve como estado de salida para la función.

#!/bin/bash
my_function ()
regresar 14

my_function
Echo El valor devuelto es $?

En el script, primero, hemos establecido una función my_function. En la función, tenemos una palabra clave de retorno que toma el valor 14. Entonces, invocamos la función my_function, que tiene una declaración de eco que devolverá el valor a ps?.

El script bash sale el valor especificado en un comando de retorno de la siguiente manera:

linuxhint@hp34: ~ $ chmod +x prueba.mierda; ./prueba.mierda
El valor devuelto es 14
linuxhint@hp34: ~ $

Ejemplo 4

En un script, una variable global es una variable a la que se puede acceder desde cualquier ubicación y no tiene restricciones en su alcance. Incluso si se declara una variable dentro de una función, se define automáticamente como una variable global. Las variables también se pueden crear localmente. Una vez que se han asignado por primera vez, las variables locales se pueden especificar dentro del cuerpo de la función utilizando la palabra clave local. Solo esa función le permite acceder a ellos. Se puede dar el mismo nombre a las variables locales creadas en otras funciones.

#!/bin/bash
var1 = "gato"
Animal_names_fun ()
local var2 = "perro"
var3 = "oveja"
echo "El nombre del primer animal es $ var1"
echo "El nombre del segundo animal es $ var2"

Animal_names_fun
echo "El nombre del primer animal es $ var1"
echo "El nombre del primer animal es $ var2"
Echo "El nombre del primer animal es $ var3"

El script bash comienza con la declaración de la variable global var1 y lo inicializa con el valor de una cadena. Entonces, creamos la función Animal_names_fun. A la función Animal_names_fun, Hemos establecido la variable local con la palabra clave local y una variable global. Las variables locales y globales se han definido con los nombres var2 y var3, y también hemos establecido sus valores. Luego, se hacemos eco de la variable global var1 dentro de la función y la variable local var2 dentro de la función. Después de eso, llamamos a la función Animal_names_fun y accedió a las variables globales var1 y var3, que generalmente se ejecutan, pero a medida que intentamos acceder a la variable local Val2 Fuera de la función especificada, devolverá un valor vacío.

Puede notificar a la salida de acceder a las variables locales y globales en el programa bash de la siguiente manera:

linuxhint@hp34: ~ $ chmod +x prueba.mierda; ./prueba.mierda
El nombre del primer animal es gato
El nombre del segundo animal es perro
El nombre del primer animal es gato
El nombre del primer animal es
El nombre del primer animal es oveja
linuxhint@hp34: ~ $

Ejemplo 5

Al nombrar una función igual que el comando que queremos anular, podemos elegir anular los comandos bash. Por ejemplo, debemos escribir una función llamada eco Si tenemos la intención de anular el comando ECHO.

Esta idea de anular los comandos BASH puede ser útil en algunas circunstancias, como cuando queremos utilizar un comando con opciones particulares. Además, hay situaciones en las que no queremos repetir todo el comando con opciones dentro del script. Podemos usar opciones para alterar el comando Bash incorporado en estas situaciones. Usemos un ejemplo para comprender mejor la idea de anular los comandos en las secuencias de comandos de shell bash:

#!/bin/bash
eco ()
Builtin echo -n 'fecha +"[%m-%d%h:%m:%s]" ":"
Echo de construcción $ 1

Echo "Bienvenido a mis blogs."

En el script bash anterior, tenemos una función eco. Dentro de la función ECHO, anulamos el comando echo e insertamos el método de marca de tiempo incorporada como argumento al comando echo.

La salida de la función de anulación de bash se muestra en la siguiente imagen:

linuxhint@hp34: ~ $ chmod +x prueba.mierda; ./prueba.mierda
[12-06 15:54:50]: Bienvenido a mis blogs.
linuxhint@hp34: ~ $

Conclusión

Discutimos la función bash sobre este tema. Una parte del código reutilizable creado explícitamente para una tarea determinada se llama función bash. Una vez definido, se puede usar varias veces en un script. Bash se involucra con el sistema operativo para llevar a cabo los comandos recibidos del shell después de leerlos. Una característica fantástica de Bash es que le permite combinar muchos de sus comandos y funciones en un solo script ejecutable, lo que hace que sea más fácil organizar su trabajo.