рекурсивный скрипт на основе fibonacci linux

Это моя попытка:

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

Я думаю, что у меня проблемы с утверждением else. Я получаю ошибкуreturn: +: numeric argument required на линии 14.

Другая проблема, которую я имею, состоит в том, что скрипт не отображает никаких чисел, даже если я делаюecho $(fibonacci 0 2), Я думал, что будет отображаться 1, так как я возвращаю 1 в этом случае. Может кто-нибудь дать мне пару советов, как этого добиться?

После проверки некоторых из ваших ответов это моя вторая попытка. Она работает правильно, за исключением того, что она отображает n-е число Фибоначчи в форме 1 + 1 + 1 + 1 и т. Д. Есть идеи, почему?

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

Моя последняя попытка:

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

спасибо, парни.

Ответы на вопрос(4)

Ваш ответ на вопрос