Я только что узнал это getopt
не является межплатформенным (в особенности для FreeBSD и Linux). Каково лучшее обходное решение для этой проблемы?
Используйте getopts
(с буквой «s»).
Согласно Bash FAQ 35 :
Если это не версия от util-linux, и вы не используете ее расширенный режим, никогда не используйте getopt (1). getopt не может обрабатывать пустые строки аргументов или аргументы со встроенными пробелами. Пожалуйста, забудьте, что он когда-либо существовал.
Оболочка POSIX (и другие) предлагает методы getopts, которые можно безопасно использовать.
Базовый синтаксис для getopt
кроссплатформенный.
getopt vi: -v -i 100 file