Entre todas las posibilidades que dan las funciones, una de ellas es la recursividad. Una función recursiva es la que se llama a sí misma dentro de su código, es una técnica que se suele usar para simplificar algoritmos complejos. En este apartado podríamos tirarnos un buen rato, pero no estamos aquí para aprender sobre recursividad, por lo que me voy a limitar a explicar un ejemplo típico de la recursividad: el factorial de un numero.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#!/bin/bash # Declaramos la función factorial function factorial() { if (( $1 < 2 )) then echo 1 else # Aquí realizamos la recursividad llamando a factorial desde factorial echo $(( $1 * $(factorial $(( $1 - 1 ))) )) fi } # Llamamos a la función factorial $1 |
Como vemos, la función factorial recibe un número y con ese número llama recursivamente otra vez a factorial pero decrementado en uno este número, hasta que llega a uno y termina, volviendo hacia atrás y dando el valor de la recursividad por la salida estándar.