سهولة استخدام أدوات CLI
أنشئ أدوات سطر أوامر سهلة الاستخدام: تعليمات مساعدة واضحة، وخيارات مختصرة، ورموز خروج، وstdout مقابل stderr، وتحليلًا أساسيًا، ومستوى إسهاب بسيط.
سهولة استخدام أدوات CLI درس مجاني في C# Academy على CoddyKit. هذا هو الدرس 3 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C# Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C# Academy 3 دروس في المجموع.
أساسيات CLI سهلة الاستخدام
الأهداف:
- عرض المساعدة باستخدام -h/--help
- استخدام خيارات واضحة (-i، -o، --verbose)
- إرجاع 0 عند النجاح، وقيمة غير صفرية عند الخطأ
- إرسال النتائج إلى stdout، ورسائل التشخيص إلى stderr
الاستخدام والمساعدة
أضف قسمًا موجزًا للاستخدام، واقبل الخيارات القصيرة والطويلة معًا، واعرضه عند غياب الإدخال.
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
}
}
الخيارات ورموز الخروج
أعِد قيمة غير صفرية عند استخدام خيارات غير صالحة؛ واجعل الرسائل قصيرة ومحددة. اطبع رسالة النجاح إلى 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 مقابل stderr
ضع النتائج في stdout لتكون قابلة للتمرير عبر الأنابيب، ورسائل التشخيص في stderr. أضف خيارًا بسيطًا هو --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 لفشل الإدخال والإخراج
اختبارات التشغيل الأولية والتوثيق
- جرّب إعادة التوجيه: command > out.txt وcommand 2> err.txt
- اختبر مسارات الخطأ، مثل الملف المفقود والوسائط غير الصالحة
- حافظ على نص الاستخدام ضمن نحو 5 أسطر على الهاتف
- وثّق أمثلة سهلة النسخ واللصق
التدفقات ورموز الخروج
الخلاصة
الخلاصة: إن توفير المساعدة عبر -h/--help، والخيارات الواضحة، ورموز الخروج المناسبة، والفصل بين stdout وstderr يجعل أدواتك سهلة الاستخدام في البرامج النصية وقابلة للتنبؤ.
الأسئلة الشائعة
هل درس «سهولة استخدام أدوات CLI» مجاني؟
نعم — نص درس «سهولة استخدام أدوات CLI» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C# Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C# Academy 3 دروس في المجموع.
ماذا ستتعلم في «سهولة استخدام أدوات CLI»؟
أنشئ أدوات سطر أوامر سهلة الاستخدام: تعليمات مساعدة واضحة، وخيارات مختصرة، ورموز خروج، وstdout مقابل stderr، وتحليلًا أساسيًا، ومستوى إسهاب بسيط. تتمرن على C# Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ C# Academy؟
لا تُشترط خبرة سابقة. C# Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 3.
كم من الوقت يستغرق درس «سهولة استخدام أدوات CLI»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس C# Academy هذا؟
نعم. كل درس في C# Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- برمجة C# النصية (dotnet script) والمقتطفات وREPL
- لمحة عن أساسيات التشغيل البيني (P/Invoke)
- سهولة استخدام أدوات CLI