Qual é a "maneira Unix" para um aplicativo CLI não relatar nenhum argumento especificado?

Qual é a "maneira Unix" para um aplicativo CLI não relatar nenhum argumento especificado?

Estou desenvolvendo um aplicativo que gostaria de seguir o "jeito Unix".

O que devo programá-lo caso seja chamado sem argumentos (o que não faz sentido prático):

  • exibir uma mensagem de erro
  • exibir ajuda ou
  • sair silenciosamente retornando 0considerando que a tarefa especificada (que não tem nada a ver) foi realizada com sucesso?

Responder1

Isso depende dos tipos de argumentos que seu aplicativo espera. Se ele processa arquivos, é tradicional ler da entrada padrão e gravar na saída padrão se nenhum argumento for especificado (exemplo: cat, tee, …). Se a aplicação tiver um modo interativo, inicie-a se nenhum argumento for especificado (exemplo: sh, ed). Se o aplicativo espera que um objeto funcione, mostre uma mensagem de erro e saia com um status diferente de zero (exemplo: cp, rm). Se o aplicativo espera um comando, mostre uma mensagem de uso e saia com status diferente de zero (exemplo: sed, tar).

Responder2

Variantes mais comuns:

  • exibir uma versão resumida da ajuda do aplicativo com a cláusula "Para visualizar a ajuda completa, digite app-name --help";

  • exibir créditos e licença;

  • "erro: nenhuma operação especificada (use -h para ajuda)".

informação relacionada