Por que as opções com strings longas têm um traço duplo?

1

Esta pergunta pode ter sido feita antes ...

Por que bandeiras como --recursivas têm dois traços em vez de apenas recursivos? Eu sei que a versão abreviada é apenas -r. Existe um número máximo de caracteres que um sinalizador com um traço pode ter antes de exigir dois traços?

    
por HeavenlyHarmony 26.07.2018 / 04:50

2 respostas

2

A questão é que você pode dizer coisas como ls -laR ; é equivalente a ls -l -a -R . Então, -recursive seria interpretado como -r -e -c -u -r -s -i -v -e .

    
por 26.07.2018 / 05:00
1

Não há regra exata para usar traço simples ou duplo como uma opção para um programa. Se alguém decidir lidar com as opções por conta própria, pode implementar o que quiser. Mas se o programador não está procurando por um PITA e quer que o programa use uma maneira comum e bem reconhecível, então usaria a função padrão getopt/getopt_long que lida com opções longas (string longa como você pediu) como double tracejado (caractere único) prefixado com traço único. A função getopt faz parte de <unistd.h> na linguagem C. A mesma função pode ser usada em sistemas baseados em Unix em shells padrão man getopt 1 que utilizam a análise de opções simples e duplas (longas).

Is there a maximum number of characters that a flag with one dash can have before it requires two dashes?

Se alguém usa a função descrita acima, as opções curtas podem ter apenas um único caractere.

    
por 26.07.2018 / 05:28