0Pricing
C# Academy · درس

سهولة استخدام أدوات 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 أسطر على الهاتف
  • وثّق أمثلة سهلة النسخ واللصق

التدفقات ورموز الخروج

تحقّق سريع: أي ممارسة تحسّن سهولة استخدام CLI وتمرير البيانات عبر أنابيب الصَدَفة؟

الخلاصة

الخلاصة: إن توفير المساعدة عبر -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 يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. برمجة C# النصية (dotnet script) والمقتطفات وREPL
  2. لمحة عن أساسيات التشغيل البيني (P/Invoke)
  3. سهولة استخدام أدوات CLI
← العودة إلى C# Academy