Sintaxe de comando do Unix / Linux

3

Quando os comandos do linux listam seu uso, geralmente é assim que eles são feitos (por exemplo, wget):

wget [option]... [URL]...

Pelo que eu entendi desse padrão de especificação do uso do comando, essa não é a maneira usual de regexar padrões e 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 também. Quer dizer, eu posso fazer diretamente

wget www.google.com

e isso vai funcionar. Então as opções não são obrigatórias. Se as opções não forem obrigatórias porque estão entre colchetes, o acompanhamento da lógica que especifica uma URL também não deve ser obrigatório e apenas

wget

como um comando deve funcionar também. Minha pergunta é- Existe algum documento onde este padrão de especificação de uso de comando é elaborado em?

    
por sandman 16.03.2012 / 02:41

6 respostas

4

Tipicamente uma sintaxe onde é [...] usada para indicar argumentos opcionais e '|' é usado para indicar um OU lógico é usado na maioria das páginas do manual. Depende de quem escreve a man page, pois não há autoridade que dite o que uma página man deve ler. Mais específico para a sua pergunta, no entanto, a página man lê a verdade neste caso. Ou você pode especificar uma URL através da opção -i ou você pode fornecer uma URL em si. Então você pode pensar nas opções como "condicionalmente opcional". Realmente, provavelmente deveria ler algo como

      ([option (excluding -i)] (-i file | URL)) 

mas você pode ver como isso se complicaria muito rapidamente. Então você precisa tomar as descrições rápidas com um grão de sal. Na minha experiência, a sintaxe de comando é geralmente a menor das suas preocupações.

Além disso, eu estou escolhendo nit aqui, mas o que você está vendo não é um regex;)

    
por 16.03.2012 / 06:29
0

Eu não acho que haja uma definição formal para isso (eu posso estar errado), mas parece que não há muito padrão para essa lógica, a julgar por uma amostragem aleatória de algumas páginas do manual.

    
por 16.03.2012 / 02:58
0

Espero que seja dito

wget [options] URL...
wget [-i|--input-file] file [options] [URL...]

A linha de sinopses simples é um pouco comum para páginas man do GNU, onde a documentação autoritativa é a informação documentação , e a página man é um resumo muito curto, geralmente descrevendo apenas as opções mais comuns.

Compare isso com as ferramentas do BSD, como tar e a ferramenta independente < um href="http://www.samba.org/ftp/rsync/rsync.html"> rsync .

Por outro lado, Convenções de Utilidade POSIX dizem que várias linhas de sinopse devem ser usadas para opções mutuamente exclusivas, e a opção -i não é mutuamente exclusiva.

    
por 04.09.2012 / 15:48
0

Isso não é uma implementação específica do link ?

    
por 04.09.2012 / 15:56
0

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.

    
por 04.09.2012 / 23:56
0

Nas especificações POSIX , se você clicar em "Definições base" no painel superior esquerdo, então "Convenções de Utilitários" no painel inferior esquerdo , você encontrará o que está procurando. / p>

Acabei nesta página procurando as especificações POSIX para a sintaxe da ajuda de comandos, então pensei em ajudar a próxima pessoa.

    
por 05.03.2016 / 02:57