ความสะดวกในการใช้งาน CLI
สร้างเครื่องมือบรรทัดคำสั่งที่ใช้งานง่าย: ความช่วยเหลือที่ชัดเจน แฟล็กแบบสั้น รหัสออก stdout เทียบกับ stderr การแยกวิเคราะห์พื้นฐาน และระดับรายละเอียดที่เรียบง่าย
ความสะดวกในการใช้งาน CLI เป็นบทเรียน C# Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C# Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C# Academy มีบทเรียนทั้งหมด 3 บทเรียน
พื้นฐาน CLI ที่ใช้งานง่าย
เป้าหมาย:
- แสดงความช่วยเหลือด้วย -h/--help
- ใช้แฟล็กที่ชัดเจน เช่น -i, -o และ --verbose
- คืนค่า0 เมื่อสำเร็จ และคืนค่าที่ไม่ใช่ศูนย์เมื่อเกิดข้อผิดพลาด
- ส่งผลลัพธ์ไปยังเอาต์พุตมาตรฐาน และส่งข้อมูลวินิจฉัยไปยังสตรีมข้อผิดพลาดมาตรฐาน
การใช้งานและความช่วยเหลือ
เพิ่มส่วนการใช้งานสั้น ๆ และรองรับแฟล็กทั้งแบบสั้นและแบบยาว โดยแสดงส่วนนี้เมื่อไม่มีข้อมูลเข้า
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
}
}
แฟล็กและรหัสการออก
คืนค่าที่ไม่ใช่ศูนย์เมื่อแฟล็กไม่ถูกต้อง และทำให้ข้อความสั้นและเฉพาะเจาะจง พิมพ์ข้อความสำเร็จไปยังเอาต์พุตมาตรฐาน
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;
}
}
เอาต์พุตมาตรฐานเทียบกับสตรีมข้อผิดพลาดมาตรฐาน
ใส่ผลลัพธ์ในเอาต์พุตมาตรฐานเพื่อให้ส่งต่อผ่านไพป์ได้ และใส่ข้อมูลวินิจฉัยในสตรีมข้อผิดพลาดมาตรฐาน เพิ่มแฟล็ก --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;
}
}
ขนบและการปรับแต่ง
- รองรับแฟล็กทั้งแบบสั้นและแบบยาว เช่น -h/--help
- ใช้ข้อความข้อผิดพลาดที่ชัดเจน โดยระบุว่าเกิดอะไรขึ้นและแก้ไขอย่างไร
- ทำให้ผลลัพธ์เริ่มต้นมีน้อยที่สุด และเพิ่ม --verbose เมื่อต้องการรายละเอียด
- ใช้รหัสการออกอย่างสอดคล้องกัน เช่น 0 สำเร็จ, 1 อาร์กิวเมนต์ไม่ถูกต้อง, 2 การอ่านเขียนข้อมูลล้มเหลว
การทดสอบเบื้องต้นและเอกสาร
- ลองเปลี่ยนเส้นทางผลลัพธ์: คำสั่ง > out.txt และคำสั่ง 2> err.txt
- ทดสอบเส้นทางข้อผิดพลาด เช่น ไม่มีไฟล์หรืออาร์กิวเมนต์ไม่ถูกต้อง
- ทำให้ข้อความการใช้งานมีความยาวไม่เกินประมาณ 5 บรรทัดบนอุปกรณ์เคลื่อนที่
- จัดทำเอกสารตัวอย่างที่คัดลอกและวางได้ง่าย
สตรีมและรหัสการออก
สรุปทบทวน
สรุปทบทวน: ความช่วยเหลือเมื่อใช้ -h/--help แฟล็กที่ชัดเจนรหัสการออกที่ถูกต้อง และการแยกเอาต์พุตมาตรฐาน/สตรีมข้อผิดพลาดมาตรฐาน ทำให้เครื่องมือของคุณเหมาะสำหรับการเรียกใช้ด้วยสคริปต์และคาดเดาพฤติกรรมได้
คำถามที่พบบ่อย
บทเรียน “ความสะดวกในการใช้งาน CLI” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ความสะดวกในการใช้งาน CLI” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C# Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C# Academy มีบทเรียนทั้งหมด 3 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ความสะดวกในการใช้งาน CLI”
สร้างเครื่องมือบรรทัดคำสั่งที่ใช้งานง่าย: ความช่วยเหลือที่ชัดเจน แฟล็กแบบสั้น รหัสออก stdout เทียบกับ stderr การแยกวิเคราะห์พื้นฐาน และระดับรายละเอียดที่เรียบง่าย คุณปฏิบัติ C# Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C# Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน C# Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 3 บทเรียน
บทเรียน “ความสะดวกในการใช้งาน CLI” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน C# Academy นี้ได้ไหม
ได้ บทเรียน C# Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การเขียนสคริปต์ C# (dotnet script) ชุดโค้ดสั้นและ REPL
- พื้นฐานการทำงานร่วมกับโค้ดเนทีฟ (P/Invoke) แบบรวบรัด
- ความสะดวกในการใช้งาน CLI