guión recursive fibonacci linux bash

Este es mi intento:

#!/bin/bash

function fibonacci(){

first=$1
second=$2

if (( first <= second ))
then
return 1

else 

return $(fibonacci $((first-1)) ) + $(fibonacci $((second-2)) )
fi
}

echo $(fibonacci 2 0)

Creo que estoy teniendo problemas con la declaración else. Me sale el errorreturn: +: numeric argument required en la línea 14.

El otro problema que tengo es que la secuencia de comandos no muestra ningún número, incluso si lo hagoecho $(fibonacci 0 2). Pensé que mostraría un 1 ya que estoy devolviendo un 1 en ese caso. ¿Puede alguien darme un par de consejos sobre cómo lograr esto?

Después de comprobar algunas de sus respuestas, este es mi segundo intento. Funciona correctamente, excepto que muestra el número n de fibonacci en el formulario 1 + 1 + 1 + 1, etc. ¿Alguna idea de por qué?

#!/bin/bash

function fibonacci(){

first=$1
second=$2

if (( first <= second ))
then
echo 1


else 

echo $(fibonacci $((first-1)) ) + $(fibonacci $((first-2)) )
fi
}

val=$(fibonacci 3 0)
echo $val

Mi último intento:

#!/bin/bash

function fibonacci(){

first=$1

if (( first <= 0 ))
then
echo 1


else 

echo $(( $(fibonacci $((first-1)) ) + $(fibonacci $((first-2)) ) ))
fi
}

val=$(fibonacci 5)
echo $val

gracias tios

Respuestas a la pregunta(4)

Su respuesta a la pregunta