Qualquer regra para '-h' e '--help'

1

Alguns comandos e programas usam -h para mostrar ajuda, alguns usam --help e alguns reconhecem ambos. Isso me deixa louco. Existe alguma regra para escolher o correto?

    
por PHPst 18.01.2015 / 13:28

2 respostas

2

Receio que não exista regra: histórico de culpas.

Originalmente, o DOS e seus predecessores usavam /? , enquanto o Unix usava - como indicador de opção, pois / era um separador de diretórios; já que o shell poderia expandir -? em uma string diferente pela expansão do nome do arquivo, -h se tornou a norma.

Até agora, tão comparativamente simples.

Em cmd , muitos comandos mantêm a convenção /? , mas os transcritos do Unix / Linux podem usar -h , /h ou /help .

Enquanto isso, no Linux, alguns comandos tornaram-se tão abrangentes que a maior parte do alfabeto foi usada em opções, então o mais detalhado -- foi usado para opções, com o único - retido como uma alternativa para o mais comum opções. E foi aí que os conflitos começaram: em comandos como ls e du , sentiu-se que -h era melhor usado como sinônimo para o longo --human-readable , já que era mais provável que ele fosse chamado com mais frequência do que ajuda.

Para complicar ainda mais, as versões de alguns programas do idioma local traduziram os parâmetros, para que em francês a opção de ajuda se torne -a de aider ou assister , por exemplo.

Uma coisa que geralmente funciona é -- : esta é quase sempre uma opção inválida, e o programa geralmente reporta um erro e, em seguida, fornece a ajuda completa ou informa qual é a opção de ajuda.

Em última análise, os usuários estão sujeitos ao capricho dos programadores: tanto o Windows quanto o Linux têm utilitários escritos por um número enorme e diferente de pessoas, e nós estamos em suas mãos.

Eu gostaria que fosse diferente, mas no final temos que trabalhar com o que está disponível, ou passar nossas vidas mantendo nossas próprias versões.

    
por 18.01.2015 / 14:49
0

Isso é devido ao seguinte motivo:

Primeiro de tudo, a maioria dos comandos linux suporta parâmetros usando a seguinte função:

getopt () e getopt_long ().

getopt () foi usado para suportar um único caractere com um "-" para distinguir várias opções

A opção longa, por exemplo, getopt_long () (ex: --help), é uma extensão do GNU que oferece mais legibilidade e também compreensão do significado dos parâmetros.

getopt_long () suporta a digitação de parâmetros curtos e longos e é por isso que muitos dos comandos podem suportar ambos.

Outra razão que gostaria de suportar os dois parâmetros é: Manter a compatibilidade com versões anteriores.

JFYR: link

Espero que acima ajuda.

    
por 19.01.2015 / 05:28