AzLearn

اختبار الأساسيات

Basics Quiz

practice ~18 دقيقة

اختبار الأساسيات — Basics Quiz

هذا اختبار عملي، وليس اختبار حفظ. المطلوب أن تعدّل الكود وتفهم لماذا نجح. Bash تكافئ الانتباه للتفاصيل الصغيرة: مسافة حول = قد تكسر السكربت، متغير غير مقتبس قد يقسم اسم ملف، وشرط غير واضح قد يجعل السكربت يتصرف في الفرع الخطأ.

قبل حل التحدي، راجع الأسئلة الثلاثة التي يجب أن تسألها في أي سكربت: ما القيم التي أتعامل معها؟ هل اقتبست القيم عند تمريرها؟ وماذا يحدث إذا لم تكن الحالة كما أتوقع؟ هذه الأسئلة أهم من حفظ الصيغ، لأنها تحميك عندما تكتب سكربتاً حقيقياً بعد أسبوع أو شهر.

مراجعة سريعة

script.sh

في المثال، استخدمنا array لحفظ الدروس، واقتبسنا اسم الطالب، واستخدمنا شرطاً رقمياً بـ(( ... )). هذه ثلاث عادات ستتكرر طوال المسار.

تحذير: ${#variable} في Bash يحسب عدد البايتات في UTF-8، لا عدد الأحرف. الكلمة العربية “مرحبا” مكونة من 5 أحرف لكنها قد تحسب كأكثر بسبب الترميز متعدد البايتات. إذا احتجت عد الأحرف الحقيقي لنص عربي، استخدم printf '%s' "$var" | wc -m مع LC_ALL=C.UTF-8.

التحدي

عدّل الكود ليجمع أطوال الكلمات الموجودة في القائمة. لا تطبع قيمة ثابتة مباشرة؛ استخدم حلقة واجمع الطول باستخدام ${#word}. الهدف هو مراجعة array، loop، وparameter expansion في مثال واحد.

تحدي — Challenge

بعد أن تصل للناتج الصحيح، اقرأ الحل كأنك تراجع سكربت زميل. هل اسم total واضح؟ هل استخدمت "${words[@]}" بدل صيغة غير مقتبسة؟ هل الحساب داخل الحلقة هو أصغر تعديل ممكن؟ هذا النوع من المراجعة البسيطة هو ما يجعل Bash مقبولاً في التشغيل اليومي.

ماذا بعد؟

أنت الآن تملك أساساً كافياً للانتقال إلى الملفات والمجلدات. هناك ستظهر نفس المفاهيم لكن على بيانات حقيقية: مسارات، ملفات، ومجلدات. إذا كان الاقتباس مهمّاً مع كلمة مثل Bash safe، فهو أهم بكثير مع مسار مثل Reports April/final.txt.