Спасибо! Оказалось, команды три (Bash, BSD, GNU), и две с одинаковым именем (у BSD и GNU), и из двух с одинаковым именем одна только работает с длинными именами - https://stackoverflow.com/questions/402377/using-getopts-to-...
Видимо, мне надо смотреть
man 8 getopt
man 1 getopt
less /usr/share/doc/util-linux/examples/getopt-parse.bash
P.S.
> Когда я путаюсь в аргументах своих скриптов, то начинаю задавать параметры через
> переменные окружения.
Глобальные переменные в коде труднее проследить. А шелл, как язык, от ошибок защищает слабее остальных.
Аргументы ком.строки переданы в одной точке и ни в каком ином месте их значения невозможно изменить. Если до вызова скрипта аргументы неожиданны, то автоматически скрипт не виноват. Если значения неожиданны внутри скрипта, то виноват только сам скрипт, но никак не родительский процесс.
Сильно упрощает.
> Кроме того, возможно, вы приблизились к границе применимости шелл скрипта как инструмента.
Совершенно верно, Вы правы. Есть особенности. Цель - разворачивать конфигурацию на минимальной системе.
Шелл позволяет без зависимостей, почти независимо от вендора операционки разворачивать конфигурацию, годами не ломаясь от проявлений прогресса в системах. Что важно для хобби и домашних поделок.
А вот по работе очень шелл критикую и не рекомендую. Кроме как 10-20 строк.