recursive fibonacci linux bash script

To jest moja próba:

#!/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)

Myślę, że mam problem z instrukcją else. Dostaję błądreturn: +: numeric argument required na linii 14.

Innym problemem, który mam, jest to, że skrypt nie wyświetla żadnych liczb, nawet jeśli to robięecho $(fibonacci 0 2). Pomyślałem, że wyświetli 1, ponieważ w tym przypadku zwracam 1. Czy ktoś może mi dać kilka wskazówek, jak to osiągnąć?

Po sprawdzeniu niektórych twoich odpowiedzi jest to moja druga próba. Działa poprawnie, z wyjątkiem tego, że wyświetla n-tą liczbę fibonacciego w postaci 1 + 1 + 1 + 1 itd. Jakieś pomysły dlaczego?

#!/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

Moja ostatnia próba:

#!/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

dzięki kolesie.

questionAnswers(4)

yourAnswerToTheQuestion