Полезен ли `getopts` только тогда, когда все опции предоставлены заранее?

С другой стороны, есть проект libbsd .

Что касается совместимости с Linux на FreeBSD, в ней есть уровень поддержки Linux ABI, называемый Linuxulator. Возможно, вы сможете обозначить свое приложение как приложение для Linux, чтобы оно работало под Linuxulator.

1
03.11.2017, 17:25
1 ответ

Судя по справочной странице, это ожидаемое поведение. getoptsподдерживает «опции» и «аргументы опции -».

Рекомендация 4 :всем параметрам должен предшествовать -. При этом ./getopts-test foo goo -a moo -bне будет работать, так как «foo» не является ни опцией, ни аргументом опции -. Следовательно, он остановится.

Аргумент опции -определяется как " :". В вашем определении a:является аргументом опции -, и он анализирует -a moo, а bпросто и опция, которая анализирует -bв ./getopts-test -a moo -b foo goo. Остальные(foo goo)просто остаются.

Рекомендация 8 :все аргументы для аргумента опции -должны быть представлены через одну запятую -через одну. Вот почему ./getopts-test -a moo foo goo -bпросто анализирует -a moo. Правильный путь — ./getopts-test -a moo,foo,goo -b. (то же самое относится и к вашему последнему делу)

Ссылка:

0
27.01.2020, 23:44

Теги

Похожие вопросы