الصفحة الرئيسية » howto » دليل المبتدئين لشروط 4 Scripting Shell و If-Then Statements

    دليل المبتدئين لشروط 4 Scripting Shell و If-Then Statements

    لقد غطينا ما يكفي من الأساسيات في دليلنا حول نصوص shell التي يجب أن تشعر بالراحة في تجربتها. في الدفعة هذا الأسبوع ، سنقوم بمعالجة بعض أكثر الأشياء متعة ، مثل الظروف وبيانات "إذا-ثم".

    ما هي الشروط?

    في اللغة اليومية ، نقول أن الشروط هي المتطلبات التي يجب الوفاء بها لحدوث شيء ما. لكي يتمكن الكمبيوتر المحمول من الاتصال بالإنترنت ، هناك العديد من الشروط التي يجب تلبيتها ، مثل وجود مزود خدمة الإنترنت ، و / أو المودم و / أو جهاز التوجيه قيد التشغيل ، وجهاز الكمبيوتر المحمول الخاص بي قيد التشغيل ، وما إلى ذلك. لم يتم استيفاء هذه المتطلبات ، والنتيجة - جهاز الكمبيوتر المحمول الخاص بالاتصال بالإنترنت - لا يحدث.

    الشروط في عالم الحوسبة تعمل بالمثل. يمكننا اختبار ما إذا كانت السلسلة تتطابق مع سلسلة أخرى ، سواء كانت لا تتطابق مع سلسلة أخرى ، أو حتى إذا كانت موجودة على الإطلاق. وبالمثل ، يمكننا اختبار الحجج الرقمية لمعرفة ما إذا كانت واحدة كبيرة أو أقل من أو تساوي الأخرى. للحصول على شيء ما يحدث بعد استيفاء شروط الاختبار ، نستخدم عبارات "if-then". شكلها بسيط جدا.

    إذا كان CONDITION
    ثم
    command1
    command2
    ...
    commandn
    فاي

    إذا كانت البيانات

    دعونا تشغيل البرنامج النصي اختبار سريع ، هل نحن?

    إذا كان الاختبار $ 1 -gt $ 2
    ثم
    صدى "$ 1 أكبر من $ 2"
    فاي

    ستلاحظ أنه عند حدوث هذا الشرط فقط سيقوم البرنامج النصي بتنفيذ الأمر التالي. وإلا ، فستنتهي عبارة "if". إذا كانت هناك أية أوامر بعد عبارة "if" ، فسيتم تشغيلها كالمعتاد. أضفت السطر التالي إلى نهاية النص أعلاه لتوضيح هذا:

    صدى "يأتي هذا بعد بيان if"

    في ما يلي بعض الشركات الرقمية الأخرى التي قد ترغب في تجربتها:

    • -مكافئ: يساوي
    • -ne: لا يساوي
    • -lt: أقل من
    • -le: أقل من أو يساوي
    • -gt: أكبر من
    • -ge: أكبر من أو يساوي

    اختبار سلاسل

    الآن ، إذا قمنا بتعديل السطر الأول من البرنامج النصي الخاص بنا ليكون هذا:

    إذا كان الاختبار $ 1 = $ 2

    عندها سيختبر الشرط إذا كان الاثنين متساويان. هناك صيد هنا رغم ذلك! يقارن استخدام علامة المساواة (=) بين سلسلتين ، وليس الأرقام. إذا كنت ترغب في مقارنة الأرقام ، فستحتاج إلى استخدام عامل التشغيل "-eq" بنفس الطريقة التي استخدمنا بها "-gt" أعلاه.

    الآن ، دعونا نجري تعديلاً آخر:

    إذا كان الاختبار $ 1! = $ 2

    يعمل تضمين علامة التعجب (!) كمعدّل "غير". بمعنى ، يتم تشغيل الأمر التالي فقط عندما لا تتطابق السلاسل جهازي.

    في ما يلي قائمة ببعض الاختبارات المستندة إلى أكثر من سلسلة يمكنك استخدامها:

    • string: استخدام مجرد وسيطة بحد ذاته يختبر إذا كانت السلسلة غير فارغة (خالية) أو غير محددة بطريقة ما
    • -n string: سيختبر هذا إذا كانت السلسلة غير فارغة وتم تعريفها
    • -سلسلة z: سيختبر هذا ما إذا كانت السلسلة فارغة ويتم تعريفها بهذه الطريقة

    ماذا عن ماذا لو?

    أنا أعترف ، كان عنوان هذا القسم بالتأكيد التورية سيئة. حسنًا ، نعرف كيفية تنفيذ أمر ما إذا كان الاختبار صحيحًا ، ولكن ماذا لو أردنا تنفيذ أمر مختلف إذا كان خطأً؟ يمكننا بسهولة الجمع بين الاثنين عن طريق إضافة قسم إلى عبارات “if-then” - "آخر"!

    إذا كان CONDITION
    ثم
    command1
    command2
    ...
    commandn
    آخر
    command1
    command2
    ...
    commandn
    فاي

    لنضع نصًا بسيطًا.

    هناك كل شيء مع المسافة البادئة المناسبة. إذا نظرت عن كثب ، ستلاحظ أننا استخدمنا الأقواس المربعة ([و]) بدلاً من أمر الاختبار. إنها مكافئة وظيفيًا لأغراضنا ، ومن المرجح أن ترى الأقواس المربعة لأسباب مختلفة ، لذا سنستخدمها من الآن فصاعدًا.

    في ما يلي الشكل الذي ستبدو عليه النتيجة:

    انه من السهل!

    ماذا أفعل الآن?

    الآن بعد أن عرفت كيفية استخدام عبارات "if-then-else" ، يمكنك تشغيل البرامج النصية التي يمكنها إجراء الاختبارات. على سبيل المثال ، يمكنك تشغيل برنامج نصي يقوم بحساب تجزئة md5 لملف ومن ثم مقارنته بالبرنامج الذي قمت بتنزيله في ملف لمعرفة ما إذا كان يتطابق.

    بالنسبة لبعض نقاط المكافآت ، يمكنك إنشاء برنامج نصي يحتوي على حلقة "for" ، ولكنه يستخدم شروط اختبار بدلاً من قراءة خطوط من ملف قائمة ...


    نحن نصل إلى بعض الأجزاء الأكثر إثارة للاهتمام في دليل المبتدئين الخاص بنا إلى Scripting Shell. إذا فاتتك الدروس السابقة ، فإليك قائمة سريعة لتتمكن من التحقق منها:

    1. أساسيات شل البرمجة
    2. باستخدام عن الحلقات
    3. المزيد من الأوامر الأساسية
    4. ما هي الاختلافات بين قذائف لينكس?
    5. كيفية استخدام التعبيرات العادية العادية

    إذا كنت قد استخدمت أو استخدمت نصوصًا تستخدم شروط الاختبار ، وعبارات if-then-else ، و "for" ، فشارك معنا في التعليقات!