Caso contrário, existe um padrão de fato? Basicamente, estou escrevendo um texto de ajuda da linha de comando, assim:
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
Eu fiz isso basicamente lendo apenas o texto de ajuda de várias ferramentas, mas há uma lista de diretrizes ou algo assim? Por exemplo, eu uso colchetes ou parênteses? Como usar espaçamento? E se o argumento for uma lista? Obrigado!
--help
. Mas ambas as perguntas são um bom candidato para uma mesclagem.Respostas:
Normalmente, sua saída de ajuda deve incluir:
[options]
para indicar para onde as opções vãoarg_name
para um argumento obrigatório e singular[arg_name]
para um argumento opcional e singulararg_name...
para um argumento exigido, do qual pode haver muitos (isso é raro)[arg_name...]
para um argumento para o qual qualquer número pode ser fornecidoarg_name
deve ser um nome curto e descritivo, em letras minúsculas-l
) ou longo (por exemplo--list
), inclua-os juntos na mesma linha, pois suas descrições serão as mesmasGREP_OPTS
Observe ainda que é uma boa forma aceitar ambos
-h
e--help
acionar esta mensagem e que você deve mostrá-la se o usuário alterar a sintaxe da linha de comando, por exemplo, omite um argumento necessário.fonte
usage: move (+|-)pixels
ou seja, quando um dos+
ou-
é obrigatório ? (Eu sei que posso ter duas linhas de uso, mas gosto da ideia de dobrá-las a cada novo argumento.) Você consegue pensar em um exemplo de uma ferramenta padrão?{a|b|c|...}
nas seções de ajuda para / scripts de serviços arrivista SysV Init, que exigem um argumento singular que é um dosa
,b
,c
, etc. Por exemplo,service sddm
sem um argumento no meu sistema imprimeUsage: /etc/init.d/sddm {start|stop|status|restart|try-restart|force-reload}
. Assim, a maioria das pessoas provavelmente entenderusage: move {+|-}pixels}
, especialmente se um exemplo é dado:example: move +5
Dê uma olhada no docopt . É um padrão formal para documentar (e analisar automaticamente) argumentos da linha de comando.
Por exemplo...
fonte
Eu acho que não há sintaxe padrão para o uso da linha de comando, mas a maioria usa esta convenção:
Sintaxe da linha de comando da Microsoft , a IBM possui sintaxe de linha de comando semelhante
Text without brackets or braces
Itens que você deve digitar como mostrado
<Text inside angle brackets>
Espaço reservado para o qual você deve fornecer um valor
[Text inside square brackets]
Itens opcionais
{Text inside braces}
Conjunto de itens necessários; escolha um
Barra vertical
{a|b}
Separador para itens mutuamente exclusivos; escolha um
Elipse
<file> …
Itens que podem ser repetidos
fonte
Estamos executando o Linux, um sistema operacional principalmente compatível com POSIX. Os padrões POSIX devem ser: Sintaxe do argumento do utilitário .
-o
.-o argument
ou-oargument
.-lst
é equivalente a-t -l -s
.-lst
é equivalente a-tls
.-lst
opção : não- opção.--
argumento encerra as opções.-
opção é normalmente usada para representar um dos fluxos de entrada padrão.fonte
man aptitude
que gera este (entre outras coisas):aptitude [<options>...] {add-user-tag | remove-user-tag} <tag> <packages>...
. Ele contém {e} para vincular comandos obrigatórios alternativos. Eu acho que (e) poderia ser usado da mesma forma que são usados no docopt .A Microsoft tem sua própria especificação Command Line Standard :
fonte
-?
,-Help
,-Version
, etc.). A resposta da IMO Steely Wing está mais próxima da marca.O GNU Coding Standard é uma boa referência para coisas assim. Esta seção trata da saída de
--help
. Nesse caso, não é muito específico. Você provavelmente não pode dar errado ao imprimir uma tabela mostrando as opções curtas e longas e uma descrição sucinta. Tente acertar o espaçamento entre todos os argumentos para facilitar a leitura. Você provavelmente deseja fornecer umaman
página (e possivelmente uminfo
manual) para sua ferramenta, para fornecer uma explicação mais elaborada.fonte
sim, você está no caminho certo.
Sim, colchetes são o indicador usual para itens opcionais.
Normalmente, como você esboçou, há um resumo da linha de comando na parte superior, seguido por detalhes, idealmente com amostras para cada opção. (Seu exemplo mostra linhas entre cada descrição de opção, mas presumo que seja um problema de edição e que seu programa real produz listagens de opções recuadas sem linhas em branco no meio. Esse seria o padrão a ser seguido em qualquer caso.)
Uma tendência mais recente, (talvez exista uma especificação POSIX que resolva isso?), É a eliminação do sistema da página de manual para documentação e incluindo todas as informações que estariam em uma página de manual como parte da
program --help
saída. Este extra incluirá descrições mais longas, conceitos explicados, exemplos de uso, limitações e bugs conhecidos, como relatar um bug e, possivelmente, uma seção 'consulte também' para comandos relacionados.Eu espero que isso ajude.
fonte
-h|--help
deve ser apenas uma referência resumida. Você também pode incluir documentação mais abrangente (tutoriais, etc ...) em páginas HTML ou informações. Mas a página de manual deve estar lá!someCommand --help
na minha concha, tudo o que preciso é de um pequeno lembrete da ordem exata em que os argumentos são inseridos, não uma faixa gigantesca de texto que preenche a tela, exigindo que eu a inclineless
apenas para ver tudo. A página de manual deve estar onde você coloca a descrição detalhada longa, não o texto de ajuda.Eu seguiria projetos oficiais como o tar como exemplo. Na minha opinião ajuda msg. precisa ser o mais simples e descritivo possível. Exemplos de uso também são bons. Não há necessidade real de "ajuda padrão".
fonte
tar
... se alguém vai fazer uma utilidade divina como o tar, por favor, torne os interruptores curtos memoráveis e inclua uma seção "exemplo de uso" no--help
. Em 90% das vezes, olho para as instruções do tar, para extrair um simplestar.gz
.