You write a bash script. Easy.
Later you add a single command line switch. Ok.
Again, later, you want to add another switch, maybe with a short and long option. Mmh, it gets slightly unreadable.
You want to add subcommands? Option validation? Usage output? Completion? Ugh, no...
I will show you an alternative!
Links:
https://metacpan.org/pod/App::Spec::Bash
(Tested with Bash 3.2.57)
https://github.com/perlpunk/shell-completions