Каковы основные аргументы, которые должны иметь каждое хорошее приложение CLI?

myapp/?

myapp -help

myapp -ver

и т.д....

Ответ 1

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

Ответ 2

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

В Windows,/? или /h или/help являются общими.

В Unix команда должна иметь man-страницу.

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

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

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

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

Ответ 3

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

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

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

Ответ 4

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

Ответ 5

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

Ответ 6

-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"