Convenção / padrão sobre o uso de chaves ao redor das opções

8

A página man do tar na seção SINOPSE do Arch Linux começa com:

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

Compreendo perfeitamente que, nessa situação, significa que exatamente uma das opções nas chaves deve ser fornecida, porque ela diz isso mais abaixo na página do manual. Existe algum tipo de padrão ou convenção sobre o uso de {} em uma lista de opções mutuamente exclusivas?

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

Some options will have a limited list of choices. A list of choices will be comma separated and put between braces.

{choice1,choice2} {yes,no}

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

    
por umbasa 03.03.2015 / 18:01

2 respostas

3

Esta é uma ótima pergunta (e ainda aberta 3 anos depois). Acho que a resposta agora é oficialmente respondida neste documento do Google :

  • Itens obrigatórios: sem backets
  • Itens mutuamente exclusivos opcionais: colchetes, delimitados por canal
  • Itens mutuamente exclusivos obrigatórios: chaves cacheadas, cano delimitado
por 19.03.2018 / 22:02
1

Is there some kind of standard or convention on using {} around list of mutually exclusive options?

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

Como você escreveu:

I perfectly understand that in this situation it means that exactly one of them must be given...

Lendo a página man do netstat Cheguei ao entendimento de que as opções eram aquelas opções disponíveis para uso com um comando que deve ser usado / declarado antes de usar quaisquer outras opções que possam estar listadas com o comando E exatamente as opções listadas separadas pela barra vertical podem ser usadas.

Um exemplo acima pode ser encontrado na man page do comando netstat:

netstat {--route|-r} [address_family_options] [--extend|-e[--extend|-e]] [--verbose|-v] [--numeric|-n] [--numeric-hosts][--numeric-ports][--numeric-ports] [--continuous|-c] [delay]

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

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

Eu só aproveitei o tempo para responder à sua pergunta porque a pergunta parece permanecer aberta, mas parece 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 os documentos do homem regularmente neste formato indica que a convenção (assumindo que eu a afirmei corretamente acima) está firmemente estabelecida.

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

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

    
por 07.09.2016 / 18:42