script recursivo fibonacci linux bash

Esta é minha tentativa:

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

Eu acho que estou tendo problemas com a declaração else. Eu recebo o erroreturn: +: numeric argument required na linha 14.

O outro problema que estou tendo é que o script não exibe nenhum número, mesmo se eu fizerecho $(fibonacci 0 2). Eu pensei que iria mostrar um 1 desde que eu estou retornando um 1 nesse caso. Alguém pode me dar algumas dicas sobre como fazer isso?

Depois de verificar algumas de suas respostas esta é a minha segunda tentativa .. Ele funciona corretamente, exceto que ele exibe o número de fibonacci enésimo na forma 1 + 1 + 1 + 1 etc. Alguma idéia 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

Minha tentativa final:

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

obrigada caras.

questionAnswers(4)

yourAnswerToTheQuestion