يتم إعطاؤك مقتطف رمز يمثل جزءًا من برنامج Shell النصي. البرنامج النصي مسؤول عن إجراء نسخ احتياطية لوحدات التخزين المنطقية (LVs). مهمتك هي إكمال البرنامج النصي من خلال تنفيذ الأجزاء المفقودة.

يقوم البرنامج النصي Shell بالخطوات التالية:

1. يحدد وظيفة تسمى "الإخراج" والتي تأخذ وسيطة واحدة وتسجل رسالة باستخدام أمر "المسجل". الوسيطة عبارة عن رسالة يتم تسجيلها بعلامة "نسخ احتياطي". على سبيل المثال، سيؤدي إخراج "تم النسخ الاحتياطي بنجاح" إلى تسجيل الرسالة "تم النسخ الاحتياطي بنجاح" مع العلامة "نسخ احتياطي".

2. يحاول تنفيذ الأمر المخزن في المتغير `$BACKUPDIRPREPARE`. هذا الأمر مسؤول عن إعداد دليل النسخ الاحتياطي. إذا كان تنفيذ الأمر ناجحًا (يُرجع حالة خروج غير صفرية)، فيجب على البرنامج النصي تسجيل رسالة خطأ باستخدام وظيفة `الإخراج` (على سبيل المثال، `الإخراج "$BACKUPDIRPREPARE غير ناجح"`) والخروج بالحالة -1 .

3. يتكرر على كل قيمة في المتغير `$LVPREFIXES`. يحتوي هذا المتغير على قائمة مفصولة بمسافات من بادئات LV.

4. بالنسبة لكل بادئة LV، فإنها تتكرر على كل عنصر في المتغير `$LVLISTRAW`. يحتوي هذا المتغير على قائمة مفصولة بمسافات بأسماء LV.

5. داخل الحلقة المتداخلة، يتم التحقق مما إذا كان اسم LV الحالي يطابق بادئة LV الحالية. ويستخدم التعبيرات العادية لمطابقة البادئة في بداية اسم LV (`^$i.*`)، باستثناء أي أسماء تطابق النمط المحدد في المتغير `$LVIGNORE`.

مهمتك هي إكمال البرنامج النصي عن طريق تنفيذ الأجزاء المفقودة:

أ) قم بتنفيذ الجزء المفقود من وظيفة "الإخراج" عن طريق تسجيل الرسالة المحددة بشكل صحيح باستخدام علامة "النسخ الاحتياطي".

ب) قم بتنفيذ الجزء المفقود الذي يتحقق من حالة الخروج للأمر المخزن في `$BACKUPDIRPREPARE`، ويسجل رسالة خطأ باستخدام وظيفة `الإخراج` إذا لم تكن ناجحة، ويخرج من البرنامج النصي بالحالة -1.

ج) قم بتنفيذ الجزء المفقود الذي يعين اسم LV المطابق لمتغير `LVNAME`.

ملاحظة: يجب أن تفترض أن المتغيرات `$BACKUPDIRPREPARE`، و`$LVPREFIXES`، و`$LVLISTRAW`، و`$LVIGNORE` محددة بشكل صحيح وتحتوي على قيم صالحة.
{"source": "argilla/DistiCoder-dpo-binarized", "kind": "synthetic", "evolved_from": null}