Если нет, то есть ли де-факто стандарт? В основном я пишу текст справки командной строки, например, так:
usage: app_name [options] required_input required_input2
options:
-a, --argument Does something
-b required Does something with "required"
-c, --command required Something else
-d [optlistitem1 optlistitem 2 ... ] Something with list
Я сделал это, по сути, просто читая справочный текст различных инструментов, но есть ли список рекомендаций или что-то в этом роде? Например, я использую квадратные скобки или скобки? Как использовать интервал? Что если аргумент является списком? Спасибо!
--help
должны выглядеть выходные данные . Но оба вопроса - хороший кандидат на слияние.Ответы:
Как правило, ваш вывод справки должен включать:
[options]
чтобы указать, куда идут вариантыarg_name
для требуемого единственного аргумента[arg_name]
для необязательного единственного аргументаarg_name...
для требуемого аргумента, которых может быть много (это редко)[arg_name...]
для аргумента, для которого можно указать любое числоarg_name
должно быть описательное, короткое имя, в нижнем регистре змеи-l
) или длинную форму (например--list
), включите их вместе в одну строку, так как их описания будут одинаковымиGREP_OPTS
Далее обратите внимание, что это хорошая форма, чтобы принять оба
-h
и--help
запустить это сообщение, и что вы должны показать это сообщение, если пользователь испортил синтаксис командной строки, например, пропустил обязательный аргумент.источник
usage: move (+|-)pixels
т.е. когда один из+
или-
является обязательным ? (Я знаю, что у меня может быть 2 строки использования, но мне нравится идея удваивать их с каждым новым аргументом.) Можете ли вы привести пример из стандартного инструмента?{a|b|c|...}
в разделах справки для SysV Init / скриптов выскочка услуг, которые требуют особой аргумент, один изa
,b
,c
и т.д. Например,service sddm
без аргумента в моей системе распечатываетUsage: /etc/init.d/sddm {start|stop|status|restart|try-restart|force-reload}
. Поэтому большинство людей, вероятно, поймутusage: move {+|-}pixels}
, особенно если дать пример:example: move +5
Посмотрите на докопта . Это формальный стандарт для документирования (и автоматического разбора) аргументов командной строки.
Например...
источник
Я думаю, что нет стандартного синтаксиса для использования командной строки, но большинство используют это соглашение:
Синтаксис командной строки Microsoft , IBM имеет аналогичный синтаксис командной строки
Text without brackets or braces
Предметы, которые вы должны ввести, как показано
<Text inside angle brackets>
Заполнитель, для которого вы должны указать значение
[Text inside square brackets]
Дополнительные предметы
{Text inside braces}
Набор необходимых предметов; Выбери один
Вертикальная черта
{a|b}
Разделитель для взаимоисключающих предметов; Выбери один
эллипсис
<file> …
Предметы, которые можно повторить
источник
Мы используем Linux, в основном POSIX-совместимую ОС. Стандарты POSIX должны быть такими: Синтаксис аргументов утилит .
-o
.-o argument
или-oargument
.-lst
эквивалентны-t -l -s
.-lst
эквивалентно-tls
.-lst
неопции неопция.--
Аргумент завершает варианты.-
опция обычно используется для представления одного из стандартных входных потоков.источник
man aptitude
что выводит этот (среди прочего):aptitude [<options>...] {add-user-tag | remove-user-tag} <tag> <packages>...
. Он содержит {и} для связывания альтернативных обязательных команд. Я думаю (и) можно использовать для того же, что и в docopt .Microsoft имеет свою собственную стандартную спецификацию командной строки :
источник
-?
,-Help
,-Version
и т.д.). Ответ IMO Steely Wing ближе к цели.Стандарт кодирования GNU - хороший справочник для таких вещей. Этот раздел посвящен выводу
--help
. В этом случае это не очень конкретно. Вы, вероятно, не ошибетесь, напечатав таблицу с краткими и длинными вариантами и кратким описанием. Постарайтесь сделать интервалы между всеми аргументами правильными для удобства чтения. Вы, вероятно, хотите предоставитьman
страницу (и, возможно,info
руководство) для вашего инструмента, чтобы дать более подробное объяснение.источник
да, вы на правильном пути.
да, квадратные скобки являются обычным индикатором для дополнительных предметов.
Как правило, как вы делали набросок, в верхней части есть сводка командной строки, за которой следуют подробности, в идеале с примерами для каждого параметра. (В вашем примере показаны строки между описанием каждого параметра, но я предполагаю, что это проблема редактирования, и что ваша настоящая программа выводит списки параметров с отступами без пробелов между ними. Это будет стандартом в любом случае).
Новейшая тенденция (может быть, есть спецификация POSIX, которая решает эту проблему?) - это устранение системы man-страниц для документации и включения всей информации, которая будет на man-странице, как часть
program --help
выходных данных. Это дополнение будет включать более подробные описания, объяснения концепций, примеры использования, известные ограничения и ошибки, как сообщить об ошибке и, возможно, раздел «см. Также» для связанных команд.Надеюсь, это поможет.
источник
-h|--help
должна быть просто краткой ссылкой. Вы также можете включить более полную документацию (учебные пособия и т. Д.) В HTML или на страницы с информацией. Но man-страница должна быть там!someCommand --help
в своей оболочке, все, что мне нужно, это маленькое напоминание о точном порядке ввода аргументов, а не гигантская полоса текста, заполняющая экран, требующая, чтобы я перенаправил ее,less
чтобы увидеть все это. Страница руководства должна быть там, где вы поместите длинное подробное описание, а не текст справки.В качестве примера я бы следовал официальным проектам, таким как tar. На мой взгляд, помогите MSG. должен быть простым и описательным, насколько это возможно. Примеры использования тоже хороши. Нет никакой необходимости в «стандартной помощи».
источник
tar
... если кто-то собирается сделать универсальную утилиту, такую как tar, пожалуйста, сделайте короткие переключатели запоминающимися и включите раздел "пример использования" в--help
. 90% времени я смотрю на инструкции tar для извлечения простогоtar.gz
.