GETOPT(1)
ИМЯ
getopt - Выполняет синтаксический анализ командных опций.
СИНТАКСИС
set -- `getopt optstring $*`
ОПИСАНИЕ
Команда getopt используется для того, чтобы проверять и разделять опции в командных строках для последующего их синтаксического анализа процедурами интерпретатора shell. Параметр
optstring является строкой распознаваемых букв опций (см. описание getopt(2)). Если за буквой следует двоеточие, то считается, что эта опция имеет аргумент, который может отделяться,
а может и не отделяться от нее пустым пространством. Специальная опция -- используется для указания конца списка опций. Команда getopt будет либо сама помещать -- в аргументах в конце
опций, либо распознавать эти знаки, если они используются заданным образом. Аргументы интерпретатора shell ($1 $2 ...) переустанавливаются таким образом, что каждой опции предшествует
тире (-) и она входит в свой собственной аргумент интерпретатора shell; каждый аргумент опции также участвует в своем
собственном аргументе интерпретатора shell.
ПРИМЕРЫ
Следующий фрагмент кода программы показывает, каким образом
обрабатываются аргументы для команды, которые могут использовать опции a и b, и опцию о, для которой требуется аргумент:
set - - `getopt abo: $*`
if [ $? !=0 ]
then
echo $USAGE
exit 2
fi
for i in $*
do
case $i in
-a | -b) FLAG=$i; shift;;
-o) OARG=$2; shift; shift;;
- -) shift; break;;
esac
done
Этот код программы будет иметь вид любого из следующих эквивалентных представлений:
cmd -aoarg file file
cmd -a -o arg file file
cmd -oarg -a file file
cmd -a -oarg -- file file
СМ. ТАКЖЕ
sh(1), getopt(2).
ДИАГНОСТИКА
Команда getopt выводит сообщение об ошибке на устройство диагностического вывода в случае, если она встречает буквы опций, не включенные в строку optstring.
ЗАМЕЧАНИЕ
Синтаксис, заданный для этой утилиты, предполагает, что пользователь имеет интерпретатор shell sh(1).