[Назад] [Дальше] [Оглавление]

      user-add [-x] [-H] config [username [ARG1 [ARG2 ... ]]]

Модуль представляет собой интерпретатор упрощенного языка конфигурационного файла, предназначенный для автоматизации внесения изменений в различные системные конфигурационные файлы. В основном используется при добавлении новых пользователей, однако нет причин этим ограничиваться.

Вносимые изменения обрамляет специального вида комментариями, упрощающими открытие/закрытие пользователя в дальнейшем (смотрите модули user-close и user-open). Пример добавляемой модулем информации:

...
# {<test> # 08-Aug-1996
system     test
user-login uutest
# }<test> # 08-Aug-1996

Модуль не обладает никакими полезными ``навыками'' без указания конфигурационного файла - стратегии действий (смотрите ниже). Количество и смысл аргументов также зависят от конфигурации с одним ограничением - первым аргументом (если он есть) должен быть указан идентификатор пользователя.

Поиск конфигурационного файла модуль сначала производит в каталоге `umanage/' домашнего каталога сервера, затем в домашнем каталоге и наконец в текущем каталоге.

Если задана опция `-x' , то в стандартный поток выводится информация о всех обрабатываемых файлах.

Опция `-H' заставляет модуль выдать краткую информацию о себе, а если одновременно с ней указано и имя конфигурационного файла, то выводится информация определенная в нем - обычно назначение и правила использования (смотрите ниже).

Конфигурационный файл состоит из набора строк. Пустые строки и строки, начинающиеся с символа `#' игнорируются. Каждая значащая строка состоит из команды и следующих за ней через пробел и/или табуляцию аргументов (если они необходимы). Идущие вподряд пробелы и/или табуляции в строке перед обработкой сжимаются в одиночные.

Интерпретатор читает конфигурационный файл и, по мере чтения, выполняет встречающиеся ему команды. Рассмотрим их в алфавитном порядке:

add string

Добавляет указанную строку к файлу. Команда может встречаться только между командами file и end.

argsnum num

Сравнивает число аргументов, заданное при запуске модуля user-add с указанным значением num. Если не совпадает, то выводится сообщение об ошибке и выполнение прерывается. При подсчете количества аргументов идентификатор пользователя тоже учитывается. Команда введена для страховки от ошибок.

comment string

Сменяет символ (символы) комментария используемые интерпретатором для пометки добавляемых им служебных записей. По умолчанию символ комментария неопределен и служебная информация не добавляется. Такие изменения в дальнейшем очень тяжело отменить или скорректировать - будьте внимательны!

echo string

Выводит строку на терминал оператору. Удобно для вывода информации о том, какие действия в данный момент выполняются - просто как правило хорошего тона.

end

Завершает блок операций с файлом, заданный командой file. Эта команда обязательно должна присутствовать!

file path

Задает файл с которым будут проводиться дальнейшие операции. Имя файла должно включать в себя полный путь!

help

Задает строку подсказки, которая будет выведена, если ключ `-H' задан во входной строке вместе с именем конфигурационного файла.

update path

Запускает указанную программу на выполнение. Удобно для случаев, когда требуются сложные действия.

Все строковые величины, используемые командами интерпретатора могут содержать макросы. Т.е. перед выводом или иным использованием, определенные последовательности символов заменяются на приписанные им значения. Рассмотрим допустимые макросы:

\s

Заменяется на пробел. Так как двойные пробелы и табуляции заменяются перед выводом на одиночные пробелы, о такой макрос бывает удобен для вставки в текст ``неудаляемого'' пробела.

\t

Заменяется на табуляцию.

%%

Заменяются на одиночный знак процента.

%ARGn%

Заменяется на переданный в командной строке аргумент. Вместо `n' должен быть номер аргумента (добавлять 0 перед числами недопустимо).

%CDATE%

Заменяется на текущие время и дату в формате `HH:MM DDMM/YYYY/'.

%CONFIG%

Заменяется на имя конфигурационного файла.

%USERNAME%

Заменяется на имя пользователя, переданное в командной строке следом за именем конфигурационного файла.

Пример конфигурационного файла:

help    Создает три файла в текущем каталоге:
help    \tfoo, содержащий первый аргумент
help    \tbar, содержащий второй
help    \tfoobar, содержащий оба, но без комментариев
help    и отсылает уведомление postmaster'у
#
# Проверка аргументов (с учетом username)
#
argsnum 3
#
comment #
#
file    foo
add     arg1    %ARG1%
end
#
file    bar
add     arg2    %ARG2%
end
#
file    foobar
comment
add     args\t1=%ARG1% 2=%ARG2% u=%USERNAME%
end
#
update  mail -s "foobar modified" postmaster < foobar


[Назад] [Дальше] [Оглавление]