CLI-brugervenlighed
Byg venlige kommandolinjeværktøjer: tydelig hjælp, korte flags, exitkoder, stdout kontra stderr, grundlæggende parsing og enkel verbosity.
CLI-brugervenlighed er en gratis C# Academy-lektion på CoddyKit. Dette er lektion 3 af 3. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i C# Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. C# Academy-kurset indeholder 3 lektioner i alt.
Grundlæggende om brugervenlige CLI-værktøjer
Mål:
- Vis hjælp med -h/--help
- Brug tydelige flag (-i, -o, --verbose)
- Returnér 0 ved succes og en værdi forskellig fra nul ved fejl
- Send resultater til stdout og diagnostik til stderr
Brug og hjælp
Tilføj et kort afsnit om brug, og acceptér både korte og lange flag; vis det, når der mangler indtastning.
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
}
}
Flag og afslutningskoder
Returnér en værdi forskellig fra nul ved ugyldige flag; hold meddelelser korte og specifikke. Skriv succesmeddelelser til 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 kontra stderr
Anbring resultater på stdout, så de kan sendes videre, og diagnostik på stderr. Tilføj et enkelt --verbose-flag.
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;
}
}
Konventioner og finpudsning
- Acceptér både korte og lange flag (-h/--help)
- Brug tydelige fejlmeddelelser (hvad der er galt + hvordan det løses)
- Hold standarduddata på et minimum; tilføj --verbose for detaljer
- Brug konsistente afslutningskoder (0 succes, 1 ugyldige argumenter, 2 I/O-fejl)
Røgtest og dokumentation
- Prøv omdirigering: command > out.txt og command 2> err.txt
- Test fejlforløb: manglende fil, ugyldige argumenter
- Hold brugsteksten under ~5 linjer på mobil
- Dokumentér eksempler, der er nemme at kopiere og indsætte
Datastrømme og afslutningskoder
Opsummering
Opsummering: Hjælp med -h/--help, tydelige flag, korrekte afslutningskoder og adskillelse af stdout/stderr gør dine værktøjer velegnede til scripts og forudsigelige.
Lær C# med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 93
- Lektioner
- 346
Ofte stillede spørgsmål
Er lektionen “CLI-brugervenlighed” gratis?
Ja — hele teksten til “CLI-brugervenlighed” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af C# Academy-kurset, skal du opgradere til CoddyKit PRO. C# Academy-kurset indeholder 3 lektioner i alt.
Hvad lærer jeg i “CLI-brugervenlighed”?
Byg venlige kommandolinjeværktøjer: tydelig hjælp, korte flags, exitkoder, stdout kontra stderr, grundlæggende parsing og enkel verbosity. Du øver dig i C# Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på C# Academy?
Der kræves ingen tidligere erfaring. C# Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 3.
Hvor lang tid tager lektionen “CLI-brugervenlighed”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne C# Academy-lektion?
Ja. Alle C# Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- C#-scripting (dotnet script), snippets og REPL
- Grundlæggende interop (P/Invoke) i overblik
- CLI-brugervenlighed