Для обычных команд оболочки -help
эквивалентно -h -e -l -p
, поэтому, если вы проанализируете "-help" с getopts
, он будет обрабатываться как четыре отдельных аргумента.Из-за этого у вас не может быть префиксов из нескольких букв с префиксом только одного дефиса, если вы не хотите выполнять весь анализ самостоятельно.По соглашению, опциям, которые не являются просто односимвольными символами (то есть «длинными опциями»), предшествуют две черточки, чтобы сделать вещи однозначными.
Соглашение для текста справки заключается в поддержке как -h
, так и * 1007.*.
К сожалению, встроенная в bash getopts
не поддерживает длинные опции, но во всех распространенных дистрибутивах Linux есть отдельная утилита getopt
, которую можно использовать вместо нее, которая поддерживает длинные опции.
В этом ответе обсуждается тема