Это команда getoptsposix, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
getopts - параметры утилиты синтаксического анализа
СИНТАКСИС
Getopts строка опций имя [аргумент...]
ОПИСАНИЕ
Команда Getopts Утилита должна извлекать опции и аргументы опций из списка параметров.
Он должен поддерживать Рекомендации по синтаксису служебных программ с 3 по 10 включительно, описанные в Базовом
Том определений POSIX.1-2008, Раздел 12.2, утилита Синтаксис Инструкции.
Каждый раз, когда он вызывается, Getopts коммунальное предприятие помещает стоимость следующего варианта в
переменная оболочки, указанная имя операнд и индекс следующего аргумента, который должен быть
обрабатывается в переменной оболочки ОПТИНОВАТЬ. Всякий раз, когда вызывается оболочка, ОПТИНОВАТЬ должен быть
инициализирован 1.
Если для параметра требуется аргумент-параметр, Getopts коммунальное предприятие помещает его в
переменная оболочки ОПТАРГ. Если вариант не найден или найденный вариант не
есть опция-аргумент, ОПТАРГ должен быть снят.
Если символ опции не содержится в строка опций операнд найден там, где опция
ожидается символ, переменная оболочки, указанная имя устанавливается на
отметка> (';') персонаж. В этом случае, если первый символ в строка опций это
(':'), переменная оболочки ОПТАРГ должен быть установлен на найденный символ опции, но без вывода
должно быть записано со стандартной ошибкой; в противном случае переменная оболочки ОПТАРГ должен быть снят
и диагностическое сообщение должно быть написано для стандартной ошибки. Это условие должно быть
считается ошибкой, обнаруженной в способе представления аргументов вызывающему
приложение, но не должно быть ошибкой в Getopts обработка.
Если параметр-аргумент отсутствует:
* Если первый символ строка опций это , переменная оболочки, указанная имя
устанавливается на символ и переменная оболочки ОПТАРГ должен быть установлен на
найден опционный символ.
* В противном случае переменная оболочки, указанная имя устанавливается на
символ, переменная оболочки ОПТАРГ должно быть сброшено, и диагностическое сообщение должно быть
написано стандартной ошибкой. Это состояние считается обнаруженной ошибкой.
способом, которым аргументы были представлены вызывающему приложению, но не должно быть
ошибка в Getopts обработка; диагностическое сообщение должно быть написано, как указано, но
статус выхода должен быть нулевым.
Когда встречается конец опций, Getopts утилита должна выйти с возвращаемым значением
больше нуля; переменная оболочки ОПТИНОВАТЬ устанавливается в индекс первого
операнд или значение "$ #"+1, если операндов нет; в имя переменная должна быть установлена на
то персонаж. Любое из следующего должно указывать на конец вариантов:
первый "---" аргумент, который не является аргументом-опцией, поиск аргумента, который не является
параметр-аргумент и не начинается с '-', или возникла ошибка.
Переменные оболочки ОПТИНОВАТЬ и ОПТАРГ должен быть местным для вызывающего абонента Getopts и должен
не экспортироваться по умолчанию.
Переменная оболочки, заданная параметром имя операнд, ОПТИНОВАТЬи ОПТАРГ повлияет на
текущая среда выполнения оболочки; видеть Раздел 2.12, Оболочка Типы Окружающая среда.
Если приложение устанавливает ОПТИНОВАТЬ к значению 1 можно использовать новый набор параметров: либо
текущие позиционные параметры или новые аргумент ценности. Любая другая попытка вызвать Getopts
несколько раз в одной среде выполнения оболочки с параметрами (позиционные
параметры или аргумент операнды), которые не совпадают во всех вызовах, или с ОПТИНОВАТЬ
значение, измененное на значение, отличное от 1, дает неопределенные результаты.
ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ
Нет.
ОПЕРАНДЫ
Поддерживаются следующие операнды:
строка опций Строка, содержащая символы опций, распознаваемые утилитой, вызывающей
Getopts. Если за символом следует , вариант следует ожидать
иметь аргумент, который должен быть указан как отдельный аргумент.
Приложения должны указывать символ параметра и его аргумент-параметр как
отдельные аргументы, но Getopts интерпретирует символы, следующие за
символ опции, требующий аргументов в качестве аргумента, независимо от того, выполнено это или нет.
Необязательно распознавать явный нулевой аргумент-параметр, если он не указан как
отдельный аргумент, когда Getopts вызывается. (См. Также Getopt() функция
определены в томе Системные интерфейсы POSIX.1-2008.) Символы
а также не должны использоваться в качестве дополнительных символов
заявление. Использование других символов опции, не являющихся буквенно-цифровыми
дает неопределенные результаты. Если параметр-аргумент не указан как
отдельный аргумент от символа опции, значение в ОПТАРГ должен быть
лишен опционного символа и '-'. Первый персонаж в строка опций
определяет, как Getopts ведет себя, если символ опции неизвестен или опция -
аргумент отсутствует.
имя Имя переменной оболочки, которая должна быть установлена Getopts полезность для
опционный символ, который был найден.
Команда Getopts утилита по умолчанию анализирует позиционные параметры, переданные вызывающей
оболочка процедуры. Если аргументs даны, они должны быть проанализированы вместо позиционных
параметры.
СТАНДИН
Не используется.
ВХОД FILES
Нет.
ОКРУЖАЮЩАЯ СРЕДА ПЕРЕМЕННЫЕ
Следующие переменные среды должны влиять на выполнение Getopts:
ДЛИННЫЙ Задайте значение по умолчанию для переменных интернационализации, которые не установлены или
нулевой. (См. Том Базовых определений POSIX.1-2008, Раздел 8.2,
Интернационализация Переменные за приоритет интернационализации
переменные, используемые для определения значений категорий локали.)
LC_ALL Если установлено непустое строковое значение, переопределить значения всех остальных
переменные интернационализации.
LC_CTYPE Определите локаль для интерпретации последовательностей байтов текстовых данных
как символы (например, однобайтовые, а не многобайтовые символы в
аргументы и входные файлы).
LC_MESSAGES
Определите языковой стандарт, который следует использовать, чтобы повлиять на формат и содержимое
диагностические сообщения записываются в стандартную ошибку.
НЛПСАТ Определите расположение каталогов сообщений для обработки LC_MESSAGES.
ОПТИНОВАТЬ Эта переменная должна использоваться Getopts полезность как показатель следующего
аргумент для обработки.
АСИНХРОННЫЙ СОБЫТИЯ
По умолчанию.
стандартный вывод
Не используется.
СТДЕРР
Каждый раз, когда обнаруживается ошибка, и первый символ в строка опций операнд не
(':'), диагностическое сообщение должно быть записано в стандартную ошибку со следующими
информация в неопределенном формате:
* Имя вызывающей программы должно быть указано в сообщении. Вызывающая программа
name должно быть значением специального параметра оболочки 0 (см. Раздел 2.5.2, Особый
параметры) в то время Getopts вызывается утилита. Имя, эквивалентное:
базовое имя "0 $"
может быть использовано.
* Если найден вариант, не указанный в строка опций, эта ошибка идентифицирована
и в сообщении должен быть указан недопустимый символ опции.
* Если опция, требующая аргумента-опции, найдена, но аргумент-опция не найдена
найдена, эта ошибка должна быть идентифицирована, а недопустимый символ опции должен быть
указан в сообщении.
ВЫВОД FILES
Нет.
РАСПРОСТРАНЕНИЯ ОПИСАНИЕ
Нет.
ВЫХОД статус
Должны быть возвращены следующие значения выхода:
0 Опция, указанная или не указанная строка опций, был найден.
> 0 Обнаружен конец параметров или произошла ошибка.
ПОСЛЕДСТВИЯ OF ОШИБКИ
По умолчанию.
Команда после разделах информативный.
ЗАЯВЛЕНИЕ ИСПОЛЬЗОВАНИЕ
С Getopts влияет на текущую среду выполнения оболочки, обычно предоставляется как
оболочка штатная встраиваемая. Если он вызывается в подоболочке или в отдельном исполнении утилиты
среда, например одно из следующих:
(гетопц азбука ценностное "$ @")
поЬир Getopts ...
найдите . -исполнительный Getopts ... \;
он не влияет на переменные оболочки в среде вызывающего.
Обратите внимание, что функции оболочки разделяют ОПТИНОВАТЬ с вызывающей оболочкой, даже если позиционный
параметры изменены. Если вызывающая оболочка и любая из ее функций используют Getopts в
синтаксический анализ аргументов, результаты не указаны.
ПРИМЕРЫ
Следующий пример сценария анализирует и отображает свои аргументы:
aflag =
bflag =
в то время как Getopts от: имя
do
случаев $ имя in
a) aflag = 1 ;;
b) bflag = 1
bval = "$ OPTARG" ;;
?) Printf "Использование: % s: [−а] [-B ценить] аргументы \ n " $0
выход 2 ;;
ESAC
сделанный
if [ ! -z "$ aflag" ]; тогда
Printf "Вариант -a указано \ n "
fi
if [ ! -z "$ bflag" ]; тогда
Printf 'Вариант -б "% s" указано \ n ' "$ bval"
fi
сдвиг $ (($ OPTIND - 1))
Printf "Оставшийся Аргументы составляют: % s \ n $ * "
ОБОСНОВАНИЕ
Команда Getopts утилита была выбрана вместо System V Getopt полезность, потому что
Getopts обрабатывает аргументы опций, содержащие символы.
Команда ОПТАРГ переменная не упоминается в разделе ПЕРЕМЕННЫЕ ОКРУЖАЮЩЕЙ СРЕДЫ, потому что она
не влияет на выполнение Getopts; это одна из немногих используемых переменных, предназначенных только для вывода
стандартными утилитами.
В не допускается в качестве символа опции, потому что это не историческое поведение,
и это нарушает Рекомендации по синтаксису служебных программ. В теперь указано, чтобы вести себя как
в версии KornShell Getopts утилита; при использовании в качестве первого символа в
строка опций операнд, он отключает диагностику отсутствия аргументов-опций и
неожиданный вариант персонажей. Это заменяет использование ОПТЕРР переменная, которая была
указано в раннем предложении.
Форматы диагностических сообщений, выдаваемых Getopts полезность и Getopt()
функции не указаны полностью, потому что реализации с превосходным (`` более дружелюбным '')
форматы возражали против форматов, используемых некоторыми историческими реализациями. Стандарт
разработчики посчитали важным, чтобы информация в используемых сообщениях была единообразной.
между Getopts и Getopt(). Точное дублирование сообщений может быть невозможно,
особенно, если утилита построена на другой системе, у которой другой Getopt()
функции, но сообщения должны содержать конкретную информацию, чтобы программа
имя, недопустимый символ опции и тип ошибки может определить пользователь.
Только редкая прикладная программа перехватывает Getopts стандартное сообщение об ошибке и хочет
проанализируйте это. Таким образом, реализации могут выбирать наиболее удобные сообщения, которые они могут.
изобретать. Следующие форматы используются во многих исторических реализациях:
"% s: незаконным вариант - % c \ n ", <программа имя>, <вариант персонаж>
"% s: option требует аргумента −−% c \ n",программа имя>, \
<вариант персонаж>
Исторические снаряды со встроенными версиями Getopt() или Getopts использовали разные
форматы, часто даже не указывая символ опции, обнаруженный по ошибке.
БУДУЩЕЕ НАПРАВЛЕНИЯ
Нет.
Используйте getoptsposix онлайн с помощью сервисов onworks.net