Попрацював трохи з бд лоу, й зрозумів, що забув одну важливу річ - останній параметр ( -- ).
Код взагалі дуже складний, розкиданий і заплутаний.
Код (( $VAR )) цілком зрозумілий для сішника але не завжди зрозумілий для bash-иста, так як код завершення (( 0 )) -> 1 , (( 1 )) -> 0. Тримати в голові що означає 0 в даному конкретному випадку трохи напрягає.
Крім того підтримка ключів --help, та -h чомусь не зроблена, хоча довідку скрипт показує.
Використання кольорів у виводі скрипта - поганий стиль. Він засиратиме вивід коли той під напр. на вхід нап. grep.
Трошки не зрозумілий стиль - з одного боку тяга до короткого коду, з іншого - if [ ... ] ; then ... fi замість [ ... ] || { ... } чи [ ... ] || ... .
Описування функції у case - дуже поганий стиль. :-)
Мені не сподобалося вирішення проблеми зі shift-ами через continue так як це обмежує можливість додавати код в тіло циклу (там повинен бути тільки shift і все). continue і break - це замасковані goto і їх не слід використовувати без особливої потреби.
Ніби все.
Чекаю коментарі на мій приклад.