Передача параметров в функцию bash

Пришел в голову интересный способ передачи параметров в функцию. Не проверял, но думаю, что в скрипт так тоже передать можно. Интересует мнение на сколько корректно так делать и чем опасно.
И так. Вся идея в том, что позиционные параметры становятся не удобными, когда передать нужно разное количество. Например.
Функция (или скрипт) принимает 5 позиционных параметров и у каждого из них есть еще дефолтное значение. Чтоб передать только пятое, а остальные оставить по дефолту нужно будет вызывать функцию со всеми пятью параметрами, заменяя первые четыре специальными значениями. Например так:
funct none none none none MagOS
после чего в функции проверять каждое значение позиционного параметра и если не none, то присваивать соответствующей переменной.
Теперь мой вариант.
funct “PAR5=“MagOS””
а в функции после присвоения дефолтных значений всем пяти переменным делаем
eval @
Все. Первые четыре значения - дефолтные, а PAR5 присвоено MagOS.
Обходимся без проверок, при передаче параметров. Визуально понятнее в какую переменную передаем, когда кода много как в livekitlib разобраться бывает не просто. Ну и кода меньше.

getopt не проще будет?

Гм. Для функции?