Quando os comandos do Linux listam seu uso, geralmente é assim que eles fazem (por exemplo, wget):
wget [option]... [URL]...
Pelo que entendi desse padrão de especificação de uso de comando, esta não é a maneira usual de regex de especificar padrões e para o comando wget diz que não é obrigatório especificar nenhuma opção e por essa lógica não é obrigatório especificar qualquer URL como bem. Quero dizer, posso fazer diretamente
wget www.google.com
e isso vai funcionar. Portanto as opções não são obrigatórias. Se as opções não forem obrigatórias porque estão entre colchetes, seguir essa lógica especificando um URL também não deve ser obrigatório e apenas
wget
como um comando também deve funcionar. Minha pergunta é: existe algum documento onde esse padrão de especificação do uso de comandos é elaborado?
Responder1
Normalmente, uma sintaxe onde [...] é usada para indicar argumentos opcionais e '|' é usado para indicar que um OR lógico é usado na maioria das páginas de manual. Depende de quem escreve a página de manual, pois não há autoridade que determine como uma página de manual deve ser lida. Mais específico para sua pergunta, no entanto, a página de manual é verdadeira neste caso. Você pode especificar um URL por meio da opção -i ou pode fornecer um URL propriamente dito. Portanto, você pode pensar nas opções como "condicionalmente opcionais". Na verdade, provavelmente deveria ser algo como
([option (excluding -i)] (-i file | URL))
mas você pode ver como isso ficaria complicado muito rapidamente. Portanto, você precisa considerar as descrições rápidas com cautela. Na minha experiência, a sintaxe do comando geralmente é a menor das suas preocupações.
Além disso, estou escolhendo aqui, mas o que você está vendo não é um regex;)
Responder2
Não acho que exista uma definição formal para isso (posso estar errado), mas parece que não existe um padrão para essa lógica, a julgar por uma amostragem aleatória de algumas páginas de manual.
Responder3
Eu esperaria que dissesse
wget [options] URL...
wget [-i|--input-file] file [options] [URL...]
A linha de sinopse única é um tanto comum nas páginas de manual do GNU, onde a documentação oficial é odocumentação de informações, e a página de manual é um resumo muito curto, geralmente descrevendo apenas as opções mais comuns.
Compare isso com ferramentas BSD comoalcatrãoe a ferramenta independentesincronizar novamente.
Por outro lado,Convenções de utilitários POSIXdizem que múltiplas linhas de sinopse devem ser usadas para opções mutuamente exclusivas, e a -i
opção na verdade não é mutuamente exclusiva.
Responder4
man 7 man-pages
(do pacote man-pages do Linux) explica algumas convenções das quais você deve estar ciente, mesmo se houver algumas páginas man que não seguem as convenções.