Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

GETOPTS(1)

НАЗВАНИЕ
getopts - разбор опций команды

СИНТАКСИС


      getopts  цепочка_опций имя [аргумент ...]

ОПИСАНИЕ
Команда getopts используется shell-процедурами для разбора позиционных параметров и проверки опций на допустимость. Команда getopts поддерживает все применимые правила стандартного синтаксиса команд [см. intro(1), правила 3-10].

Цепочка_опций должна содержать флаги, которые будут распознаваться shell-процедурой, использующей getopts. Если за флагом следует двоеточие, то предполагается, что опция имеет аргумент или группу аргументов, которые должны отделяться от флага пробелами или табуляциями.

После каждого вызова getopts помещает следующую опцию в переменную имя, а номер аргумента, который должен быть обработан следующим, - в переменную OPTIND. Всегда, когда запускается shell или shell-процедура, OPTIND получает значение 1.

Если опции требуется аргумент, то getopts помещает его в переменную OPTARG.

Если встретилась некорректная опция, то в переменную имя помещается ?.

Если опции кончились, getopts возвращает ненулевой код завершения. Можно использовать специальную опцию --, чтобы отметить конец опций.

По умолчанию команда getopts разбирает позиционные параметры вызвавшей ее shell-процедуры, но если указать дополнительные аргументы, то getopts будет разбирать их.

ПРИМЕР
Следующий фрагмент shell-процедуры cmd показывает, как можно обработать аргументы команды, допускающей опции a и b, а также опцию o, которая должна иметь аргумент:


     while getopts abo: c

     do

       case $c in

       a | b)  FLAG=$c;;

       o)      OARG=$OPTARG;;

       ?)      echo $USAGE

               exit 2;;

       esac

     done

     shift `expr  $OPTIND - 1`

При такой обработке следующие строки оказываются эквивалентными:

     cmd -a -b -o "xxx z yy" file

     cmd -a -b -o "xxx z yy" -- file

     cmd -ab -o xxx,z,yy  file

     cmd -ab -o "xxx z yy" file

     cmd -o xxx,z,yy -b -a  file

ПРИМЕЧАНИЯ
Утверждение о эквивалентности предыдущих строк не вполне верно:

  1. В последней строке опции b и a идут в ином порядке, чем в предыдущих, и так как в данном примере эти опции помещаются в одну переменную FLAG, то при обработке последней строки окончательное значение этой переменной окажется не таким, как в предыдущих строках.

  2. В тех строках, в которых аргумент опции o задан в виде "xxx z yy", OARG примет значение xxx z yy, а в тех строках, где аргумент опции o задан как xxx,z,yy, OARG будет равен xxx,z,yy.

ФАЙЛЫ


 	/usr/bin/getopt         Старая версия программы разбора

				опций.

	/usr/lib/getoptcvt      Программа перевода shell-проце-

				дур, использовавших getopt,  на

				getopts.

СМ. ТАКЖЕ
gutil(1G), intro(1), sh(1). getopt(3C) в Справочнике программиста.

ДИАГНОСТИКА
Команда getopts выводит сообщение об ошибке в стандартный протокол, когда встречается опция, не включенная в цепочку_опций.

ПРЕДОСТЕРЕЖЕНИЯ
Хотя текущая реализация getopts допускает некоторые отступления от правил, задающих синтаксис команд [см. intro(1)], этим не следует пользоваться, так как подобные возможности могут не поддерживаться в следующих версиях системы. Пусть, как и в ПРИМЕРЕ, a и b - опции без аргументов, а опции o требуется аргумент:


     cmd  -aboxxx file

Здесь нарушено правило 5: опция с аргументом не должна быть в одной группе с остальными опциями.

     cmd  -ab -oxxx file

Нарушено правило 6: после опции, которой требуется аргумент, должен быть пробел или табуляция.

Изменение значения переменной OPTIND или разбор различных наборов аргументов могут привести к непредсказуемому результату.

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...