отчеты по лабораторным работам / лабораторная работа № 4 / 4unix
.doc
-
Лабораторная работа #4
Работу выполнил
студент гр. 2100
Голубцов Евгений
2009
Написать программу поиска в тексте аббревиатур и подстановки вместо них полных наименований из указанного в качестве параметров основного или дополнительного словаря. В случае отсутствия в словаре внести расшифровку аббревиатуры вводом с клавиатуры в дополнительный словарь.
getopts
Мощный инструмент, используемый для разбора аргументов, передаваемых сценарию из командной строки. Она позволяет обрабатывать серии опций, объединенных в один аргумент и дополнительные аргументы, передаваемые сценарию (например, scriptname -abc -e /usr/local).
С командой getopts очень тесно взаимосвязаны скрытые переменные. $OPTIND -- указатель на аргумент (OPTion INDex) и $OPTARG (OPTion ARGument) -- дополнительный аргумент опции. Символ двоеточия, следующий за именем опции, указывает на то, что она имеет дополнительный аргумент.
Обычно getopts упаковывается в цикл while, в каждом проходе цикла извлекается очередная опция и ее аргумент (если он имеется), обрабатывается, затем уменьшается на 1 скрытая переменная $OPTIND и выполняется переход к началу новой итерации.
|
|
while getopts ":abcde:fg" Option
# Начальное объявление цикла анализа опций.
# a, b, c, d, e, f, g -- это возможные опции (ключи).
# Символ : после опции 'e' указывает на то, что с данной опцией может идти
# дополнительный аргумент.
do
case $Option in
a ) # Действия, предусмотренные опцией 'a'.
b ) # Действия, предусмотренные опцией 'b'.
...
e) # Действия, предусмотренные опцией 'e', а так же необходимо обработать $OPTARG,
# в которой находится дополнительный аргумент этой опции.
...
g ) # Действия, предусмотренные опцией 'g'.
esac
done
shift $(($OPTIND - 1))
# Перейти к следующей опции.