Shell Scripting – Funciones y sus tipos

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *