Designações e padrões de sinalizadores comuns para scripts e funções de shell

4

Eu tenho me adaptado ao uso de GETOPT e GETOPTS em meus scripts de shell e funções personalizadas para permitir que eu use as funções que eu crio de forma mais flexível. Depois de usar várias funções do UNIX, percebi que muitas delas usam uma sintaxe semelhante.

Exemplos são -v para saída detalhada e -R/-r para funcionalidade recursiva.

Eu consultei o guia padrão POSIX para convenções de serviços públicos e o Tabelas de opções do GNU para utilitários baseados em C . Na tentativa de entender se isso foi planejado e se há regras que eu deveria seguir.

Minhas perguntas são:
1. Existem algumas opções de sinalização específicas que designaram significado?
2. Quanta liberdade eu tenho com minhas opções e quais regras não devo quebrar?
3. Devo ficar longe de dar opções como -t e -T significados diferentes, ou devo agrupá-las para simplificar?
4. Que situações devo usar letras maiúsculas ou minúsculas?

    
por Dodzi Dzakuma 06.01.2014 / 12:51

1 resposta

4

Não há regras rápidas e firmes, nem convenções comuns. No máximo, existem algumas opções que são usadas consistentemente em alguns utilitários comuns - mas não em todos os utilitários comuns.

Aqui estão algumas letras comuns - mas lembre-se de que estas não são de forma alguma convenções universais. Se você tiver um dos recursos descritos abaixo, é melhor usar a opção correspondente. Se uma das opções não fizer sentido para o seu utilitário, sinta-se à vontade para usá-lo para outra coisa.

  • -c COMMAND ou -e COMMAND : executa um comando. Exemplos: sh -c , perl -e .
  • -d ou -D : debug.
  • -f : force, não peça confirmação para ações perigosas.
  • -h : help - mas muitos utilitários reconhecem apenas a opção longa --help ou nada. Exemplos: Linux getfacl , mount . Contra-exemplos: GNU ls , du , df (nenhuma opção curta, -h é tamanho humano), less ( -? é ajuda, -h é outra coisa).
  • -i : pedido de confirmação ( i nterativo).
  • -n : não atue, apenas imprima o que seria feito. Exemplo: make .
  • -r ou -R : recursivo.
  • -q ou -s : silencioso ou silencioso. Exemplo: grep -q significa não exibir saída, grep -s significa exibir nenhuma mensagem de erro.
  • -v : detalhado.
  • -V : mostra informações sobre a versão.

Tradicionalmente, letras minúsculas são usadas e letras maiúsculas só entram em uso porque há apenas 26 letras minúsculas. Às vezes, as letras maiúsculas têm algo a ver com a letra minúscula correspondente (exemplo: GNU grep -h/-H , ssh -x/-X , cp -r/-R ), outras vezes não.

    
por 07.01.2014 / 01:24