Каковы основные аргументы, которые должно иметь каждое хорошее приложение CLI? - PullRequest
10 голосов
/ 13 июня 2009

myapp /?

myapp -help

myapp -ver

и т.д ....

Ответы [ 7 ]

11 голосов
/ 13 июня 2009

Стандарты кодирования GNU мандат --version и --help, и я ожидал, что любая программа CLI поддержит их. Помимо этого, это действительно зависит от того, что программа, но вот некоторые другие предложения: -q или --quiet для меньшего вывода, -v или --verbose для большего вывода, -d или --debug для отладочный вывод.

8 голосов
/ 13 июня 2009

Зависит от платформы.

В Windows /? или / h или / help часто встречаются.

В Unix команда должна иметь справочную страницу.

В вариантах Unix, в которых соблюдаются соглашения Gnu (например, Linux), он должен отвечать на --help и --version. Более того, он может интегрироваться с автозаполнением bash.

Кроме того, посмотрите на другие программы в той же области, что и ваша, и используйте те же параметры, где это имеет смысл. E.g.:

  • -r / - рекурсивно рекурсировать каталоги вниз
  • -q / - тихо, чтобы подавить вывод
  • -v / - подробный текст для генерации подробного диагностического результата
  • -n выполнить без изменения чего-либо

Если ваша программа принимает имена файлов в качестве аргументов, то принято считать, что один дефис означает «читать из стандартного ввода», а двойной дефис означает «обрабатывать следующий аргумент как файл, даже если он начинается с дефиса».

5 голосов
/ 13 июня 2009

Короткая и длинная версия аргументов командной строки. Проверьте, существует ли библиотечный порт getopt для используемого вами языка программирования. Это поможет вам в разборе аргументов командной строки.

--config-file=FILE | -C FILE
--help | -h
--usage | -u
--version | -v

Включите другие соответствующие параметры для вашего приложения.

3 голосов
/ 13 июня 2009

Я согласен со всеми приведенными выше аргументами, но хотел бы отметить еще одну вещь: вы можете пожелать, чтобы ваше приложение принимало длинные, короткие и стиль BSD для всех аргументов. Конечно, стиль BSD может быть опущен, если вы чувствуете, что никому из ваших пользователей не будет удобно его использовать. Длинный стиль помогает придать смысл аргументам и их легче запомнить при начале работы с приложением.

2 голосов
/ 13 июня 2009

Эрик С. Рэймонд дает большой обзор наиболее распространенных опций командной строки UNIX в своей замечательной книге Искусство программирования Unix . В основном речь идет об однобуквенных вариантах, но, тем не менее, это большой ресурс.

2 голосов
/ 13 июня 2009

-h является обязательным для * nix. Я бы сказал то же самое для /? в Windows, но программы, доступные для обеих платформ, обычно используют стиль * nix. Вероятно, из-за getopt и друзей.

Некоторые предметы первой необходимости:

-h, --help
-v, --version
-u, --usage

Если приложение вообще изменяет какие-либо файлы:

--dry-run    Do not modify any files (but work as if you did)

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

Некоторые основные рабочие переключатели для работы в неинтерактивном режиме и выполнения работы:

mysql --execute="SELECT * FROM ..."
cmd.exe /C "dir"
2 голосов
/ 13 июня 2009

Я бы посоветовал иметь опцию для справки, версии, настроек вывода подробностей. Другие переключатели зависят от вашего приложения.

...