Convenção / padrão sobre o uso de chaves em torno das opções

9

A página de manual para o tar na seção SYNOPSIS do Arch Linux começa com:

tar {A|c|d|r|t|u|x}[GnSkUWOmpsMBiajJzZhPlRvwo] [ARG...]

Entendo perfeitamente que, nessa situação, significa que exatamente uma das opções nos chavetas deve ser dada, porque é o que diz mais adiante na página de manual. Existe algum tipo de padrão ou convenção sobre o uso de {} em torno de uma lista de opções mutuamente exclusivas?

Tudo o que posso encontrar é um tutorial do grupo de usuáriosman de 1998, onde diz:

Algumas opções terão uma lista limitada de opções. Uma lista de opções será separada por vírgula e colocada entre chaves.

{escolha1, escolha2} {sim, não}

Parece que todas as convenções (como esta do Open Group ) ou a página do manual descrevem apenas colchetes ([) ou linhas verticais (|).

umbasa
fonte
1
Normalmente, acho que isso <>é obrigatório, mas suponho que isso esteja reservado para argumentos em oposição a opções. Counter: A versão do Ubuntu da página de manual tar do GNU ( manpages.ubuntu.com/manpages/trusty/en/man1/tar.1.html , por exemplo) não usa este formulário, nem o linux.die.net/man/ 1 / tar ou Debian . Eu acho que você pode estar olhando a página de manual do BSD tar, portanto, se existe uma convenção, pode ser uma coisa do BSD.
Muru
O upstream para arch man-pages é man7.org , a página tar é exatamente a mesma man7.org/linux/man-pages/man1/tar.1.html .
umbasa
2
Eu sempre pensei que a sintaxe da linha de comando saía do ENBF , mas {} no ENBF significa exatamente o oposto (repetição de argumento em vez de uma opção possível, como na situação do tar). Tentei pesquisar na {} sintaxe com o objetivo do windows e parece que {} é muito comum no windows, e até tem uma descrição no technet . Suspiro, talvez eu esteja tentando muito encontrar a verdade.
umbasa

Respostas:

4

Essa é uma ótima pergunta (e ainda está aberta três anos depois). Acho que a resposta agora está oficialmente respondida neste documento do Google :

  • Itens necessários: sem backets
  • Itens mutuamente exclusivos opcionais: colchetes, delimitado por tubo
  • Itens mutuamente exclusivos necessários: chaves, cacheados, delimitados por tubos
TSG
fonte
1

Existe algum tipo de padrão ou convenção no uso de {} em torno da lista de opções mutuamente exclusivas?

Eu estava pesquisando a importância do significado das opções especificadas entre chaves ({}) versus opções especificadas entre colchetes ([]) quando me deparei com sua pergunta. Foi a única fonte de informação que eu achei útil em relação ao que eu estava procurando entender, ou seja, por que as opções estão indicadas em chaves.

Como você escreveu:

Entendo perfeitamente que, nesta situação, significa que exatamente um deles deve ser dado ...

Ao ler a página de manual do netstat, cheguei ao entendimento de que as opções eram aquelas disponíveis para uso com um comando que deve ser usado / declarado antes do uso de outras opções que possam ser listadas com o comando E exatamente apenas uma das opções listadas separado pela barra vertical pode ser usado.

Um exemplo do acima pode ser encontrado na página de manual do comando netstat:

netstat {--route | -r} [address_family_options] [--extend | -e [- estender | -e]] [--verbose | -v] [--numeric | -n] [--numeric-hosts ] [- portas numéricas] [- portas numéricas] [--continua | -c] [atraso]

Fonte: netstat (8) | Página de manual do Linux

Em essência, pode-se usar exatamente um de --route ou -r (eles significam a mesma coisa), mas a opção deve preceder as outras opções listadas.

Levei apenas um tempo para responder à sua pergunta porque ela parece permanecer aberta, mas parece-me que você respondeu sua própria pergunta :)

Uma convenção é apenas uma prática amplamente estabelecida. Seja explicitamente declarado ou não, o fato de você encontrar o homem documenta regularmente nesse formato indica que a convenção (supondo que eu tenha afirmado corretamente acima) está firmemente estabelecida.

Existe um "padrão"? Para mim, isso depende de qual definição você deseja adotar para "padrão". Para mim, há pouca ou nenhuma distinção entre o significado das palavras convenção e padrão, no sentido em que estamos usando o termo aqui. Nesse sentido, considero as duas palavras como algo como "algo que é mutuamente acordado, usado e aceito como norma".

Obrigado pelo seu tempo ajudando-me a entender esta convenção / norma.

Darren Gansberg
fonte