0Pricing
C# Academy · Aula

Ergonomia da CLI

Crie ferramentas de linha de comando fáceis de usar: ajuda clara, opções curtas, códigos de saída, stdout versus stderr, análise básica e verbosidade simples.

Ergonomia da CLI é uma aula grátis de C# Academy no CoddyKit. Esta é a aula 3 de 3. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C# Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C# Academy inclui 3 aulas no total.

Noções básicas de uma CLI amigável

Objetivos:

  • Exibir a ajuda com -h/--help
  • Usar opções claras (-i, -o, --verbose)
  • Retornar 0 em caso de sucesso e um valor diferente de zero em caso de erro
  • Enviar os resultados para stdout e os diagnósticos para stderr

Uso e ajuda

Adicione uma seção curta de uso e aceite opções curtas e longas; mostre-a quando a entrada estiver ausente.

using System;

// A tiny CLI that prints help if no args or -h/--help is passed.
public class Program
{
  static void PrintUsage()
  {
    Console.WriteLine("usage: tool -i <input> [-o <output>] [--verbose]");
    Console.WriteLine("options:");
    Console.WriteLine("  -i, --input     input file path (required)");
    Console.WriteLine("  -o, --output    output file path (optional)");
    Console.WriteLine("  -h, --help      show help");
    Console.WriteLine("      --verbose   print extra diagnostics to stderr");
  }

  public static void Main(string[] args)
  {
    if (args.Length == 0 || args[0] == "-h" || args[0] == "--help")
    {
      PrintUsage();
      Environment.ExitCode = 0;
      return;
    }

    Console.WriteLine("OK: arguments received"); // placeholder success
  }
}

Opções e códigos de saída

Retorne um valor diferente de zero para opções inválidas; mantenha as mensagens curtas e específicas. Imprima o sucesso em stdout.

using System;

// Minimal manual parsing for beginners (no external libs).
public class Program
{
  static void Error(string msg)
  {
    Console.Error.WriteLine("error: " + msg);
    Environment.ExitCode = 1; // non-zero means failure
  }

  public static void Main(string[] args)
  {
    string input = null;
    string output = null;

    for (int i = 0; i < args.Length; i++)
    {
      string a = args[i];
      if (a == "-i" || a == "--input")
      {
        if (i + 1 >= args.Length) { Error("missing value for " + a); return; }
        input = args[++i];
      }
      else if (a == "-o" || a == "--output")
      {
        if (i + 1 >= args.Length) { Error("missing value for " + a); return; }
        output = args[++i];
      }
      else if (a == "-h" || a == "--help")
      {
        Console.WriteLine("usage: tool -i <input> [-o <output>]");
        return;
      }
      else
      {
        Error("unknown option: " + a);
        return;
      }
    }

    if (input == null) { Error("input is required (-i)"); return; }

    // Success path: write result to stdout
    Console.WriteLine("Processed " + input + (output == null ? "" : (" -> " + output)));
    Environment.ExitCode = 0;
  }
}

Stdout e stderr

Coloque os resultados em stdout (para encaminhamento por pipe) e os diagnósticos em stderr. Adicione uma opção simples --verbose.

using System;

// Show separation of streams: stdout (results) vs stderr (diagnostics).
public class Program
{
  public static void Main(string[] args)
  {
    bool verbose = false;
    for (int i = 0; i < args.Length; i++) if (args[i] == "--verbose") verbose = true;

    if (verbose) Console.Error.WriteLine("info: starting work");
    // pretend to compute a number
    int result = 42;
    // Result goes to stdout so it can be piped:  tool ... > out.txt
    Console.WriteLine(result);

    if (verbose) Console.Error.WriteLine("info: finished work");
    Environment.ExitCode = 0;
  }
}

Convenções e acabamento

  • Aceite opções curtas e longas (-h/--help)
  • Use mensagens de erro claras (o que está errado + como corrigir)
  • Mantenha a saída padrão mínima; adicione --verbose para obter detalhes
  • Use códigos de saída consistentes (0 sucesso, 1 argumentos inválidos, 2 falha de E/S)

Testes rápidos e documentação

  • Experimente o redirecionamento: comando > out.txt e comando 2> err.txt
  • Teste os caminhos de erro: arquivo ausente, argumentos inválidos
  • Mantenha o texto de uso com menos de aproximadamente 5 linhas no celular
  • Documente exemplos fáceis de copiar e colar

Fluxos e códigos de saída

Verificação rápida: qual prática melhora a facilidade de uso da CLI e o encaminhamento por pipe do shell?

Recapitulação

Recapitulação: ajuda em -h/--help, opções claras, códigos de saída adequados e a separação entre stdout/stderr tornam suas ferramentas adequadas para scripts e previsíveis.

Perguntas Frequentes

A aula “Ergonomia da CLI” é grátis?

Sim — o texto completo de “Ergonomia da CLI” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C# Academy, atualize para CoddyKit PRO. O curso de C# Academy inclui 3 aulas no total.

O que vou aprender em “Ergonomia da CLI”?

Crie ferramentas de linha de comando fáceis de usar: ajuda clara, opções curtas, códigos de saída, stdout versus stderr, análise básica e verbosidade simples. Você pratica C# Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar C# Academy?

Nenhuma experiência prévia é necessária. C# Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 3.

Quanto tempo leva a aula “Ergonomia da CLI”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de C# Academy?

Sim. Cada aula de C# Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Scripting em C# (dotnet script), trechos e REPL
  2. Fundamentos de interoperabilidade (P/Invoke) de relance
  3. Ergonomia da CLI
← Voltar para C# Academy