Протокол (protocol) (с аргументом). Примеры:
-q
Подавление вывода (quiet) (обычно без аргумента). Подавляет обычное отображение результата или сведений диагностики. Данное значение является весьма распространенным. Примеры:-s
.
-r
(а также - R
)
Рекурсия (recurse) (без аргумента). Если программа выполняет операции над каталогом, данный параметр может указывать на то, что операции рекурсивно повторяются для всех входящих в данный каталог подкаталогов. Любое другое применение данного ключа в утилите, обрабатывающей каталоги, было бы весьма неожиданным. Классическим примером, несомненно, является утилита
Реверс (reverse) (без аргумента). Примеры:-d
).
-s
Подавление вывода (silent) (без аргументов). Подавляет обычное отображение сведений диагностики или результатов (аналогичен ключу -q
; когда поддерживаются оба ключа, то q
означает 'quiet' (тихо), a -s
— 'utterly silent' (очень тихо)). Примеры:
Тема сообщения (subject) (с аргументом).
Иногда ключ -
s имеет значение 'size' (размер).
-t
Тег (tag) (с аргументом). Назвать расположение или передать программе строку, используемую в качестве ключа поиска. Главным образом используется с текстовыми редакторами и программами просмотра. Примеры:
-u
Пользователь (user) (с аргументом). Указать пользователя по имени или числовому идентификатору (UID). Примеры:
-v
Вывод подробных сведений (verbose) (с аргументом или без). Используется для включения мониторинга транзакций, более объемных списков или вывода отладочных сообщений. Примеры:
Версия (version) (без аргумента). Отображает версию программы на стандартном выводе и завершает свою работу. Примеры:-V
.
Версия (version) (без аргумента). Отображает версию программы на стандартный вывод и завершает работу (кроме того, часто распечатывает на экране детали конфигурации, с которой была скомпилирована программа). Примеры:
-w
Ширина (width) (с аргументом). Главным образом используется для определения ширины в форматах вывода. Примеры:
Предупреждение (warning) (без аргументов). Включает диагностические предупреждения или подавляет их. Примеры:
-x
Разрешить отладку (с аргументом или без). Данный ключ подобен -d
. Примеры:
Извлечь (extract) (с аргументом). В качестве аргумента указываются файлы, которые необходимо извлечь из архива или рабочего комплекта. Примеры:
-y
Да (yes) (без аргументов). Санкционирует потенциально разрушительные действия, для которых программа обычно запрашивает подтверждение. Примеры:
-z
Разрешает сжатие (без аргументов). Часто данный ключ используется в программах архивирования и резервного копирования. Примеры:
Приведенные выше примеры взяты из инструментария Linux, но соответствуют большинству современных Unix-систем.
Выбирая буквы для параметров командной строки разрабатываемой программы, следует обратиться к справочным руководствам по подобным инструментам и попытаться использовать такие же буквы, какие используются в них для аналогичных функций разрабатываемой программы. Следует заметить, что некоторые отдельные прикладные области имеют особенно жесткие соглашения о ключах командной строки, нарушать которые опасно. Такие соглашения характерны для компиляторов, почтовых агентов, текстовых фильтров, сетевых утилит и программного обеспечения для X Window. Например, разработчик, который написал почтовый агент, использующий ключ -s
для какой-либо другой функции вместо подстановки темы, услышит справедливую критику в свой адрес.
Стандарты программирования проекта GNU[100] рекомендуют традиционные значения для нескольких параметров с двойным дефисом. В проекте также перечислены длинные параметры, которые используются во многих GNU-программах, хотя они и не стандартизированы. Если программа разрабатывается с использованием GNU-стиля, и какой-либо необходимый параметр обладает функцией, подобной одному из перечисленных параметров, то следует всеми способами соблюсти правило наименьшей неожиданности и использовать имеющееся имя.
10.5.2. Переносимость на другие операционные системы
Для применения параметров командной строки необходимо ее присутствие в системе. В семействе MS-DOS командная строка, несомненно, присутствует, хотя в Windows она скрыта GUI-интерфейсом и используется слабо. Тот факт, что символом параметра обычно является '/
' вместо '-
' — только деталь. Классическая MacOS и другие исключительно GUI-среды не имеют близкого эквивалента параметров командной строки.
10.6. Выбор метода
Выше последовательно были рассмотрены системные и пользовательские файлы конфигурации, переменные окружения и аргументы командной строки — направление от конфигурации, которую изменить сложнее, к конфигурации, изменяемой проще. Имеется четкое соглашение о том, что удобные Unix- программы, использующие несколько мест хранения конфигурационных сведений, должны просматривать