Como especifico a chamada de comando para uma opção curta ou longa obrigatória?

1

Estou escrevendo uma especificação para uma ferramenta que precisa de uma opção -f / --foo com um argumento obrigatório BAR , portanto, por exemplo, essas são chamadas válidas:

tool -f BAR
tool --foo BAR

Como especifico esta sintaxe na seção de invocação de uma página man ou de outra definição formal?

Isso significaria que as opções não são necessárias, o que não é o que pretendo:

tool [-f BAR | --foo BAR]

Mas simplesmente omitir os colchetes também não faria sentido, uma vez que o tubo poderia ser confundido com um tubo de revestimento real.

não tem opções longas , e não consigo encontrar uma referência GNU para isso.

    
por slhck 27.11.2014 / 21:00

1 resposta

1

Eu não acho que seria comum interpretar tool -f BAR | --foo BAR como «canalizar a saída de tool -f BAR para o comando --foo BAR ». Então eu usaria simplesmente

tool -f BAR | --foo BAR

Existem outras possibilidades na natureza usando marcação adicional, especialmente se a invocação for mais complexa, para torná-la mais óbvia. Ao contrário dos argumentos opcionais e [] , nenhum deles é universalmente entendido como argumento obrigatório , por exemplo:

tool {-f BAR | --foo BAR}

ou

tool <-f BAR | --foo BAR>

e até mesmo

tool (-f BAR | --foo BAR)

Se você quiser ter certeza de que ninguém interpreta mal a especificação de invocação, basta duplicá-la:

tool -f BAR
tool --foo BAR

Você verá muitas páginas de manual e a ajuda de programas usará essa abordagem múltipla, embora seja geralmente para invocações diferentes, em vez de invocações equivalentes.

    
por 27.11.2014 / 23:01