У скриптах ми маємо можливість оголошувати і викликати функції. Як і в будь-якій мові програмування, функції в Баш є шматками коду, проте є відмінності.

У Bash, функції є послідовністю команд, згрупованих під певною назвою, ця назва і є назвою функції. Виклик функції такий же як і виклик будь–якої іншої програми — просто напишіть назву функції і вона виконається.

Функції оголошуються таким чином:

```bash
my_func () {
  # оператори
}

my_func # Виклик my_func
```

Ми не можемо викликати функції до їх оголошення.

Функції можуть отримувати аргументи і повертати результат - код виходу. Аргументи у функціях обробляють таким же способ як і аргументи отримані скриптом в не інтерактивному режимі: через позиційні параметри. Код виходу може буте _повернений_ через команду `return`.

Нище наведена функція, яка отримує ім'я та повертає `0` - код успішного виконання.

```bash
# функція з параметрами
greeting () {
  if [[ -n $1 ]]; then
    echo "Hello, $1!"
  else
    echo "Hello, unknown!"
  fi
  return 0
}

greeting World  # Hello, World!
greeting        # Hello, unknown!
```

Команда `return` без будь-яких аргументів повератає код виходу останньої виконаної команди. Вище `return 0` буде повертає код успішнього виконання `0`.Ми можемо також оголосити локальну змінну для  функції за допомогою `local`. В результаті цього змінна зникає, коли функція закінчується.

```bash
local local_var="Я локальна змінна"
```

## ЗАВДАННЯ

Створіть файл з ім'ям `functions.bash`.

Завдання майже таке ж як і в попередній вправі. Ви отримаєте два позиційні параметри і повинні вивести всі парні числа в діапазоні між ними. Щоб зробити це використаємо функцію з будь-якою назвою, що буде друкувати ці числа використовуючи рекурсію. Також оголосимо функцію `main` що буде друкувати значення `$FUNCNAME` і викликати твою функцію.

Інакше кажучу, ви повинні побудувати дерево парних чисел. На вершині дерева повинно бути ім'я `main` функції. Інші елементи повинні бути парним числам. Кожен новий елементи дерева повинний мати відступ, рівний глибині (один рівень є одним пробілом ``` ```)

Приклад:

    ./loops.bash 10 17

Результат:

    main
     10
      12
       14
        16

Використовуйте `-n` з `echo` для виведення даних без переходу на новий рядок.

---
