في هذه المقالة ، سنشرح كيفية استخدام بيان حالة Bash مع المثال في Linux OS.
بناء جملة بيان حالة bash
إليك صيغة بيان حالة bash:
بناء الجملة:
قضية متغير $ في
نمط-1)
أوامر
؛؛
نمط-2)
أوامر
؛؛
نمط-3)
أوامر
؛؛
نمط- N)
أوامر
؛؛
*)
أوامر
؛؛
esac
- يبدأ بيان الحالة بالحالة وينتهي بـ esac
- يتم استخدام) لإنهاء النمط. لفصل أنماط متعددة ، | عامل التشغيل يستخدم كما هو موضح أدناه:
نمط-1|نمط-2)
أوامر
....
....
؛؛
نمط-3|نمط-4)
أوامر
....
....
؛؛
- يُعرف النمط الذي يحتوي على أوامر بجملة وتنتهي كل جملة بـ (؛ ؛).
- يمكن استخدام رمز النجمة * لتعريف الحالة الافتراضية.
- يتطابق بيان حالة Bash أولاً مع المتغير $ input مع الأنماط المختلفة. إذا تمت مطابقة النمط ، فسيتم تنفيذ مجموعة الأوامر المقابلة حتى الفاصلة المنقوطة المزدوجة (؛ ؛).
مثال 1:
المثال التالي يدور حول كشف النقود bash حيث يطلب من المستخدم إدخال اسم الشهر. إذا تطابق هذا الإدخال مع الأنماط المحددة في البرنامج النصي ، فسيتم تنفيذ أمر echo المقابل. سيعرض الأمر echo معلومات حول الحدث الدولي لذلك الشهر بالذات.
لاستخدام هذا البرنامج النصي ، قم بإنشاء ملف نصي بسيط ؛ سمها بامتداد الملف sh. أضف البرنامج النصي التالي فيه واحفظه. ثم قم بتعيين هذا الملف لتنفيذ الأذونات عن طريق تشغيل الأمر التالي في Terminal:
$سودو chmod 777filename.shلتنفيذ ملف bash هذا ، ما عليك سوى تشغيل ./ متبوعًا باسم ملف bash على النحو التالي:
$./filename.sh
عند تنفيذ البرنامج النصي ، سيُطلب منك إدخال اسم الشهر كإدخال. إذا كان اسم الشهر متطابقًا ، فسيعرض الحدث المقابل في ذلك الشهر المحدد ، وإلا فلن يتم عرض أي معلومات مطابقة.
لاحظ أنه يتم استخدام تطابق nocasematch shopt لمطابقة النمط بغض النظر عن حالته.
محلات -سnocasematchرما - طرد - قذف 'أدخل اسم الشهر'
اقرأشهر
قضية شهر دولار في
كانون الثاني)
رما - طرد - قذف '24 يناير يوم التعليم العالمي'.
؛؛
شهر فبراير)
رما - طرد - قذف '20 فبراير اليوم العالمي للعدالة الاجتماعية.'
؛؛
مارس)
رما - طرد - قذف 'الثامن من مارس يوم المرأة العالمي'.
؛؛
أبريل)
رما - طرد - قذف 'السابع من أبريل يوم الصحة العالمي'
؛؛
قد)
رما - طرد - قذف 'يوم 15 مايو العالمي للأسر'
؛؛
يونيو)
رما - طرد - قذف '20 يونيو اليوم العالمي للاجئين'
؛؛
تموز)
رما - طرد - قذف '11 يوليو اليوم العالمي للسكان'
؛؛
*)
رما - طرد - قذف 'لم يتم العثور على معلومات مطابقة'
؛؛
esac
المثال 2:
المثال التالي يدور حول كشف النقود bash حيث يُطلب من المستخدم إدخال اسم البلد. إذا تطابق هذا الإدخال مع الأنماط المحددة في البرنامج النصي ، فسيتم تنفيذ أمر echo المقابل. سيعرض الأمر echo معلومات حول عاصمة ذلك البلد المعين.
لاستخدام هذا البرنامج النصي ، اتبع نفس الطريقة الموضحة في المثال أعلاه. بمجرد الانتهاء من ذلك ، قم بتنفيذ البرنامج النصي ، وسيُطلب منك إدخال اسم البلد كمدخل. إذا كان اسم البلد مطابقًا لأسماء البلدان المحددة مسبقًا ، فسيعرض اسم البلد الكبير ، وإلا فسيتم عرض رسالة المعلومات غير المتوفرة.
#!/bin/bashمحلات -سnocasematch
رما - طرد - قذف -ن 'أدخل اسم البلد:'
اقرأبلد
رما - طرد - قذف -ن 'عاصمةبلد $يكون '
قضية بلد $ في
باكستان)
رما - طرد - قذف -ن 'اسلام آباد'
؛؛
فيجي)
رما - طرد - قذف -ن 'جاف'
؛؛
المملكة المتحدة| 'المملكة المتحدة')
رما - طرد - قذف -ن 'لندن'
؛؛
ديك رومى)
رما - طرد - قذف -ن أنقرة
؛؛
الاستخدامات)
رما - طرد - قذف -ن 'واشنطن العاصمة'
؛؛
*)
رما - طرد - قذف -ن 'المعلومات غير متوفرة'
؛؛
esac
رما - طرد - قذف '
تجعل عبارات حالة Bash نص bash أسهل في القراءة والفهم. في هذه المقالة ، تناولنا كيفية كتابة واستخدام عبارات حالة bash. الآن يمكنك كتابة نوع من بيان if-else متعدد المستويات بسهولة وببساطة عن طريق استخدام عبارات الحالة.