كيفية استخدام بيان حالة Bash

How Use Bash Case Statement



تشبه عبارات حالة Bash عبارات if-else ولكنها أسهل وأبسط. يساعد على مطابقة متغير واحد مقابل عدة قيم. يتم استخدامه عندما تطلب عبارات IF-else مع عدد من عبارات Elif ... وهي تشبه إلى حد بعيد عبارة التبديل في C ، إلا أن عبارة حالة bash لا تتحرك للأمام بمجرد مطابقة النمط

في هذه المقالة ، سنشرح كيفية استخدام بيان حالة 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 متعدد المستويات بسهولة وببساطة عن طريق استخدام عبارات الحالة.