O traço duplo ainda é o padrão posix para interruptores longos?

6

Li várias perguntas sobre o traço duplo:

Único traço - para opções de caractere único, mas traços duplos -- para palavras? < br> O que significa -- (traço duplo)? (também conhecido como "duplo traço nu")

No entanto, lembro-me de um professor há 4 anos que me disse que -- era a melhor maneira de lidar com opções longas como --help ou --color= .
Hoje, estou usando muito comando onde essa regra não é respeitada e o melhor exemplo que posso fazer é find , em que nenhum switch longo recebe um traço duplo, mesmo com o muito irritante AIX find .

O meu professor estava errado? ou a regra muda desde (o que parece improvável)?
E, finalmente, há alguma regra posix sobre o tamanho da opção e - ou -- ?

    
por Kiwy 25.04.2014 / 11:14

2 respostas

12

Acho que o POSIX não define opções longas :

Guideline 3: Each option name should be a single alphanumeric character (the alnum
character classification) from the portable character set. The -W (capital-W) option shall be reserved for vendor options.

Multi-digit options should not be allowed.

O traço duplo é uma convenção da GNU .

Na definição POSIX de encontrar os "interruptores longos" com um único traço são não faz parte das opções, mas uma expressão dada como um operando.

    
por 25.04.2014 / 11:55
2

find parece ser a exceção à regra. Na verdade find se originou fora do grupo de desenvolvedores de utilitários iniciais para o Unix, portanto, a maneira não-conforme de usar opções 'longas'.

Como tantas vezes, a padronização aconteceu somente depois que o uso de opções curtas e longas tornou-se prática comum em mais programas, e em parte porque algumas rotinas, ou bibliotecas, se tornaram disponíveis para fazer a análise de opções (impondo assim algum padrão não explícito). Mas é claro que naquela época já era tarde demais para mudar os programas existentes , como find , de uma maneira que não quebraria os scripts. A conformidade com POSIX, com traços duplos, é menos importante do que não quebrar esses scripts.

A compatibilidade com versões anteriores é, por exemplo, também a razão pela qual opções curtas para tar podem ser especificadas com ou sem um traço.

    
por 25.04.2014 / 11:42

Tags