Un shell es un intérprete de línea de comandos y los scripts de shell comúnmente ejecutan la manipulación de archivos, la ejecución de programas y la salida de texto. En este artículo, vamos a leer acerca de las funciones y sus tipos en scripts de shell.
Función
Una función es una colección de sentencias que ejecutan una tarea específica. Su objetivo principal es desglosar un procedimiento complicado en subrutinas más simples que posteriormente se pueden usar para realizar la rutina más compleja. Por las siguientes razones, las funciones son populares:
- Ayudar con la reutilización de código.
- Mejorar la legibilidad del programa.
- Modularizar el software.
- Permitir un fácil mantenimiento.
La estructura básica de una función en scripts de shell es la siguiente:
function_name(){ // body of the function }
El nombre_función puede ser cualquier string válida y el cuerpo puede ser cualquier secuencia de declaraciones válidas en el lenguaje de programación.
Tratemos de entender el concepto de funciones mirando un ejemplo. El siguiente es un código para imprimir todos los números primos entre un rango [le,ri]. Consiste en una función is_prime() que se utiliza para verificar si el número dado es primo o no. En esta función, usamos la variable $1 para acceder al primer argumento, que es el número en sí. En los lenguajes de secuencias de comandos, podemos acceder a los argumentos por $i, donde i es un número que indica la posición del argumento.
echo -n "Enter Left-End: " read le echo -n "Enter Right-End: " read ri is_prime(){ if [ $1 -lt 2 ]; then return fi ctr=0 for((i=2;i<$1;i++)){ if [ $(( $1 % i )) -eq 0 ]; then ctr=$(( ctr +1 )) fi } if [ $ctr -eq 0 ]; then printf "%d " "$1" fi } printf "Prime Numbers between %d and %d are: " "$le" "$ri" for((i=le;i<=ri;i++)){ is_prime $i } printf "\n"
Tipos de funciones
Las funciones en los scripts de shell se pueden clasificar en varias categorías. Los siguientes son algunos de ellos:
1. Las funciones que devuelven un valor a la persona que llama. La palabra clave return es utilizada por las funciones para este propósito.
La siguiente es una de esas funciones que se usa para calcular el promedio de los números dados.
find_avg(){ len=$# sum=0 for x in "$@" do sum=$((sum + x)) done avg=$((sum/len)) return $avg } find_avg 30 40 50 60 printf "%f" "$?" printf "\n"
Salida :
Recuerda que return solo puede devolver un número (0-255).
2. Las funciones que terminan el shell usando la palabra clave exit.
is_odd(){ x=$1 if [ $((x%2)) == 0 ]; then echo "Invalid Input" exit 1 else echo "Number is Odd" fi } is_odd 64
Producción:
3. Las funciones que alteran el valor de una variable o variables.
a=1 increment(){ a=$((a+1)) return } increment echo "$a"
Producción:
4. Las funciones que hacen eco de la salida a la salida estándar.
hello_world(){ echo "Hello World" return } hello_world
Producción:
Publicación traducida automáticamente
Artículo escrito por aayushmohansinha y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA