كيفية إتقان المنطق الشرطي في باش

Kyfyt Atqan Almntq Alshrty Fy Bash



يعد استخدام المنطق الشرطي جزءًا أساسيًا جدًا من أي لغة برمجة. يمكن تنفيذ المنطق الشرطي في Bash بطرق مختلفة لحل مشاكل البرمجة. يتم عرض طرق استخدام المنطق الشرطي في Bash من خلال الأنواع المختلفة من عبارات 'if' و'case' لمقارنة القيم النصية والرقمية، والتحقق من محتوى المتغير، والتحقق من وجود الملف أو الدليل، وما إلى ذلك في هذا البرنامج التعليمي. .

قائمة المحتويات:

  1. استخدام عبارة 'إذا'.
  2. استخدام عبارة 'إذا كان الأمر كذلك'.
  3. استخدام عبارة 'If-Elif-Else'.
  4. استخدام عبارة 'إذا' للتحقق من متغير فارغ
  5. استخدام عبارة 'If' مع العامل المنطقي
  6. استخدام عبارات 'إذا' المتداخلة
  7. استخدام عبارة 'إذا' للتحقق من وجود الملف
  8. استخدام عبارة 'إذا' للتحقق من وجود الدليل
  9. استخدام عبارة 'إذا' مع Regex
  10. استخدام بيان 'القضية'.

استخدام عبارة 'إذا'.

يوضح هذا المثال الاستخدام البسيط لعبارة 'if' في Bash. يمكن استخدام ستة أنواع من عوامل المقارنة لمقارنة القيم الرقمية في Bash. هذه هي '-eq' (يساوي)، و'-ne' (غير متساوي)، و'-le' (أقل من يساوي)، و'-ge' (أكبر من يساوي)، و'-lt' (أقل من)، و' -GT' (أكبر من). يتم عرض استخدامات '-lt' و'-eq' في البرنامج النصي التالي سواء كان الرقم أقل من 99 أو لم يتم التحقق منه باستخدام عامل التشغيل '-lt'. الرقم زوجي أو فردي ويتم التحقق منه بواسطة عامل التشغيل '-eq'.







#!/بن/باش

# تعيين قيمة رقمية

( ( رقم = خمسون ) )

#تحقق من القيمة الرقمية باستخدام عبارة 'if'.

لو [ رقم $ -لتر 99 ]

ثم

صدى صوت 'الرقم صالح.'

يكون

# تحقق مما إذا كان الرقم زوجي أم لا

لو [ $ ( ( رقم $ % 2 ) ) -مكافئ 0 ]

ثم

صدى صوت 'الرقم زوجي.'

يكون

انتاج | :



يظهر الإخراج التالي بعد تنفيذ البرنامج النصي السابق:



  ص1





اذهب إلى الأعلى

استخدام عبارة 'إذا كان الأمر كذلك'.

يظهر استخدام عبارة 'if-else' في البرنامج النصي التالي. يتم أخذ قيمة سلسلة من المستخدم والتحقق مما إذا كانت القيمة 'زرقاء' أم لا باستخدام عبارة 'if-else'.



#!/بن/باش

# خذ قيمة سلسلة من المستخدم

يقرأ 'أدخل اللون المفضل لديك:' لون

# تحقق من قيمة السلسلة باستخدام عبارة 'if-else'.

لو [ ${اللون^^} == 'أزرق' ]

ثم

صدى صوت 'حسنا، اللون الأزرق متاح.'

آخر

صدى صوت ' $ اللون غير متاح.'

يكون

انتاج | :

يظهر الإخراج التالي بعد تنفيذ البرنامج النصي السابق إذا تم أخذ 'الأحمر' كمدخل:

  p2-1

يظهر الإخراج التالي بعد تنفيذ البرنامج النصي السابق إذا تم أخذ 'الأزرق' كمدخل:

  p2-2

اذهب إلى الأعلى

استخدام عبارة 'If-Elif-Else'.

يظهر استخدام عبارة 'if-elif-else' في البرنامج النصي التالي. يتم أخذ رقم من المستخدم وفحصه بقيم مختلفة حتى يتم العثور على أي تطابق. إذا تم العثور على أي تطابق، تتم طباعة الرسالة المقابلة. إذا لم يتم العثور على تطابق، تتم طباعة الرسالة الافتراضية.

#!/بن/باش

# خذ قيمة المعرف من المستخدم

يقرأ 'أدخل الرقم التسلسلي الخاص بك:' مسلسل

# تحقق من قيمة الإدخال باستخدام عبارة 'if-elif-else'.

لو [ $المسلسل == '4523' ]

ثم

صدى صوت 'لقد تم اختيارك في المجموعة أ.'

إليف [ $المسلسل == '8723' ]

ثم

صدى صوت 'لقد تم اختيارك في المجموعة ب.'

إليف [ $المسلسل == '3412' ]

ثم

صدى صوت 'لقد تم اختيارك في المجموعة ج.'

آخر

صدى صوت 'لم يتم اختيارك' .

يكون

انتاج:

تظهر النتيجة التالية بعد تنفيذ البرنامج النصي بقيمة 8723:

  p3-1

تظهر النتيجة التالية بعد تنفيذ البرنامج النصي بقيمة 9078:

  p3-2

اذهب إلى الأعلى

استخدام عبارة 'إذا' للتحقق من متغير فارغ

يتم عرض طريقة التحقق مما إذا كان المتغير فارغًا بدون استخدام عبارة 'if' في البرنامج النصي التالي. يتم استخدام الخيار '-z' في عبارة 'if' للقيام بهذه المهمة.

#!/بن/باش

# خذ قيمة المعرف من المستخدم

يقرأ 'أدخل الرقم التسلسلي الخاص بك:' مسلسل

# تحقق مما إذا كان المتغير فارغًا أم لا

لو [ ! -مع $المسلسل ]

ثم

# تحقق من قيمة الإدخال باستخدام عبارة 'if-elif-else'.

لو [ $المسلسل == '690' ]

ثم

صدى صوت 'لقد تم اختيارك في الفريق 1.'

إليف [ $المسلسل == '450' ]

ثم

صدى صوت 'لقد تم اختيارك في الفريق 2.'

آخر

صدى صوت 'لم يتم اختيارك' .

يكون

آخر

صدى صوت 'لم يتم إعطاء رقم تسلسلي.'

يكون

انتاج | :

تظهر النتيجة التالية بعد تنفيذ البرنامج النصي بقيمة 690:

  ص4-1

يظهر الإخراج التالي بعد تنفيذ البرنامج النصي إذا لم يتم أخذ أي قيمة إدخال:

  ص4-2

اذهب إلى الأعلى

استخدام عبارة 'If' مع العوامل المنطقية

يمكن استخدام ثلاثة أنواع من العوامل المنطقية في عبارة Bash الشرطية. هذه منطقية OR (||) ومنطقية AND (&&) ومنطقية NOT (!). يتم أخذ قيمة الرمز من المستخدم. إذا كانت قيمة الإدخال غير فارغة، يتم التحقق من القيمة بقيمتين رمزيتين باستخدام OR المنطقي. إذا تطابقت القيمة مع أي رمز، فسيتم طباعة الرسالة المقابلة. إذا لم يتم العثور على رمز مطابق، فسيتم طباعة الرسالة الافتراضية.

#!/بن/باش

#خذ رمز الدورة من المستخدم

يقرأ 'أدخل رمز الدورة:' شفرة

# تحقق مما إذا كان المتغير فارغًا أم لا

لو [ ! -مع رمز $ ]

ثم

# تحقق من قيمة الإدخال باستخدام عبارة 'if-elif-else'.

لو [ [ رمز $ == 'CSE-106' || رمز $ == 'CSE-108' ] ]

ثم

صدى صوت 'دورة CSE.'

إليف [ [ رمز $ == 'بي بي ايه-203' || رمز $ == 'بي بي ايه-202' ] ]

ثم

صدى صوت 'دورة بابا'.

آخر

صدى صوت 'رمز المقرر الدراسي غير صالح.'

يكون

آخر

صدى صوت 'لم يتم تقديم رمز الدورة التدريبية.'

يكون

انتاج | :

يظهر الإخراج التالي بعد تنفيذ البرنامج النصي بقيمة الإدخال 'CSE-108':

  ص5-1

يظهر الإخراج التالي بعد تنفيذ البرنامج النصي بقيمة الإدخال 'BBA-56':

  ص5-2

اذهب إلى الأعلى

استخدام عبارات 'إذا' المتداخلة

عندما يتم استخدام شرط 'if' داخل شرط 'if' آخر، فإنه يسمى عبارة 'if' متداخلة. تظهر طريقة استخدام 'if' المتداخلة في البرنامج النصي التالي. يتم أخذ قيمتين من العلامة من المستخدم. إذا كانت قيم الإدخال غير فارغة، فإن شرط 'if' الأول يتحقق مما إذا كانت قيمة '$theory' أكبر من أو تساوي 60 أم لا. إذا كان شرط 'if' الأول يرجع 'صحيح'، فإن شرط 'if' الثاني يتحقق مما إذا كانت قيمة '$lab' أكبر من أو تساوي 50 أم لا. إذا أعاد شرط 'if' الثاني أيضًا 'صحيح'، فستتم طباعة رسالة نجاح. وإلا، فسيتم طباعة رسالة فشل.

#!/بن/باش

#خذ علامة النظرية

يقرأ 'أدخل علامة النظرية:' نظرية

#خذ علامة المعمل

يقرأ 'أدخل علامة المختبر:' مختبر

# تحقق مما إذا كانت المتغيرات فارغة أم لا

لو [ [ ! -مع نظرية $ && ! -مع مختبر $ ] ]

ثم

# تحقق من قيم الإدخال باستخدام عبارة 'if' المتداخلة

لو [ نظرية $ -ge 60 ]

ثم

لو [ مختبر $ -ge خمسون ]

ثم

صدى صوت 'كنت قد مرت.'

آخر

صدى صوت 'لقد أخفقت.'

يكون

آخر

صدى صوت 'لقد أخفقت.'

يكون

آخر

صدى صوت 'العلامة النظرية أو المعملية فارغة.'

يكون

انتاج | :

تظهر المخرجات التالية إذا كانت كلتا قيمتي الإدخال أو إحداهما فارغة:

  ص6-1

تظهر النتيجة التالية إذا تم أخذ 78 كعلامات نظرية و45 كعلامات مختبرية. هنا، الشرط الثاني 'إذا' يُرجع 'خطأ':

  ص6-2

تظهر النتيجة التالية إذا تم أخذ 67 كعلامات نظرية وتم أخذ 56 كعلامات مختبرية. هنا، كلا الشرطين 'إذا' يُرجعان 'صحيح':

  ص6-3

تظهر النتيجة التالية إذا تم أخذ 50 كعلامات نظرية وتم أخذ 80 كعلامات مختبرية. هنا، يُرجع شرط 'if' الأول 'خطأ':

  ص6-4

اذهب إلى الأعلى

استخدام عبارة 'إذا' للتحقق من وجود الملف

يمكن التحقق من وجود الملف بواسطة البرنامج النصي bash بطريقتين. أحدهما يستخدم عامل التشغيل '-f' مع قوسين '[]'. آخر يستخدم الأمر 'اختبار' وعامل التشغيل '-f'. يتم أخذ اسم الملف والتحقق من وجود الملف باستخدام شرط 'if' مع عامل التشغيل '-f'. بعد ذلك، يتم أخذ اسم ملف آخر والتحقق من وجود الملف باستخدام عبارة 'if' باستخدام أمر 'test' وعامل التشغيل '-f'.

#!/بن/باش

# خذ اسم الملف

يقرأ 'أدخل اسم الملف:' fn1

# تحقق مما إذا كان الملف موجودًا أم لا بدون استخدام 'اختبار'.

لو [ -F $fn1 ]

ثم

صدى صوت ' $fn1 الملف موجود.'

آخر

صدى صوت ' $fn1 الملف غير موجود.'

يكون

#إضافة سطر جديد

صدى صوت

# خذ اسم ملف آخر

يقرأ 'أدخل اسم ملف آخر:' fn2

# تحقق مما إذا كان الملف موجودًا أم لا باستخدام 'اختبار'.

لو امتحان -F $fn2 ; ثم

صدى صوت ' $fn2 الملف موجود.'

#تحقق مما إذا كان الملف فارغًا أم لا باستخدام 'اختبار'.

لو امتحان -مع $fn2 ; ثم

صدى صوت ' $fn2 الملف فارغ.'

آخر

صدى صوت ' $fn2 الملف ليس فارغًا.'

يكون

آخر

صدى صوت ' $fn2 الملف غير موجود.'

يكون

انتاج | :

يظهر الإخراج التالي بعد تنفيذ البرنامج النصي عن طريق أخذ 'test.txt' و'testing.txt' كأسماء ملفات. وفقًا للإخراج، كلا الملفين موجودان في الموقع الحالي وملف 'testing.txt' فارغ:

  ص7-1

يظهر الإخراج التالي بعد تنفيذ البرنامج النصي عن طريق أخذ 'f1.txt' و'test.txt' كأسماء ملفات. وفقًا للإخراج، فإن الملف 'f1.txt' غير موجود في الموقع الحالي والملف 'test.txt' ليس فارغًا:

  ص7-2

اذهب إلى الأعلى

استخدام عبارة 'إذا' للتحقق من وجود الدليل

يمكن التحقق من وجود الدليل عن طريق البرنامج النصي Bash بطريقتين مثل الملف. أحدهما يستخدم عامل التشغيل '-d' مع قوسين '[]'. آخر يستخدم أمر 'الاختبار' وعامل التشغيل '-d'. يتم أخذ اسم الدليل والتحقق من وجود الدليل باستخدام شرط 'if' مع عامل التشغيل '-d'. بعد ذلك، يتم أخذ اسم دليل آخر والتحقق من وجود الملف باستخدام عبارة 'if' باستخدام أمر 'test' وعامل التشغيل '-d'.

#!/بن/باش

# خذ اسم الدليل

يقرأ 'أدخل اسم الدليل:' انت 1

# تحقق مما إذا كان الدليل موجودًا أم لا بدون استخدام 'اختبار'.

لو [ $dir1 ]

ثم

صدى صوت ' $dir1 الدليل موجود.'

آخر

صدى صوت ' $dir1 الدليل غير موجود.'

يكون

#إضافة سطر جديد

صدى صوت

# خذ اسم دليل آخر

يقرأ 'أدخل اسم دليل آخر:' dir2

# تحقق مما إذا كان الملف موجودًا أم لا باستخدام 'اختبار'.

لو امتحان $dir2

ثم

صدى صوت ' $dir2 الدليل موجود.'

آخر

صدى صوت ' $dir2 الدليل غير موجود.'

يكون

انتاج | :

يظهر الإخراج التالي بعد تنفيذ البرنامج النصي بأسماء الدليل 'temp' و 'files'. وفقا للإخراج، كلا الدليلين موجودان في الموقع الحالي. ثم يتم تنفيذ الأمر 'ls' للتحقق من محتوى المجلدات:

  ص8-1

يظهر الإخراج التالي بعد تنفيذ البرنامج النصي بأسماء الدليل 'الاختبار' و'الجديد'. وفقا للإخراج، فإن كلا الدليلين غير موجودين في الموقع الحالي. بعد ذلك، يُظهر إخراج الأمر 'ls' أن كلا الدليلين غير موجودين:

  ص8-2

اذهب إلى الأعلى

استخدام عبارة 'إذا' مع Regex

يوضح البرنامج النصي التالي طريقة التحقق من صحة بيانات الإدخال باستخدام عبارة 'if' مع التعبير العادي. هنا، يتم أخذ قيمتي إدخال من المستخدم ويتم تخزينهما في متغيرات '$bookname' و'$bookprice'. يتم استخدام شرط 'if' في البرنامج النصي للتحقق من أن المتغير '$bookname' يحتوي على جميع الأحرف الأبجدية وأن المتغير '$bookprice' يحتوي على رقم.

#!/بن/باش

#خذ اسم الكتاب وسعره من المستخدم

صدى صوت 'أدخل اسم الكتاب:'

يقرأ اسم الكتاب

صدى صوت 'أدخل سعر الكتاب:'

يقرأ سعر الكتاب

#تأكد من أن اسم الكتاب يحتوي على الحروف الأبجدية فقط

لو ! [ [ ' اسم الكتاب $ ' =~ [ أ-زا-ي ] ] ] ; ثم

صدى صوت 'اسم الكتاب غير صالح.'

آخر

صدى صوت 'اسم الكتاب صالح.'

يكون

#التحقق من أن سعر الكتاب يحتوي على رقم فقط

لو ! [ [ ' $ سعر الكتاب ' =~ [ 0 - 9 ] ] ] ; ثم

صدى صوت 'سعر الكتاب يمكن أن يحتوي على أرقام فقط.'

آخر

صدى صوت 'سعر الكتاب صالح.'

يكون

انتاج | :

تظهر المخرجات التالية بعد تنفيذ البرنامج النصي مع قيم الإدخال 'Bash Programming' كاسم الكتاب و78 كسعر الكتاب:

  p9-1

تظهر المخرجات التالية بعد تنفيذ البرنامج النصي بقيم الإدخال 90 كاسم الكتاب و'باش' كسعر الكتاب:

  p9-2

اذهب إلى الأعلى

استخدام بيان 'القضية'.

عبارة 'الحالة' هي البديل لعبارة 'if-elif-else'، ولكن لا يمكن تنفيذ جميع مهام عبارة 'if-elif-else' باستخدام عبارة 'case'. يظهر الاستخدام البسيط لبيان 'الحالة' في البرنامج النصي التالي. يتم أخذ قيمة رقمية من المستخدم كقيمة الشهر الحالي. ثم يتم طباعة الشهر المقابل في حالة وجود أي قيمة مطابقة في بيان 'الحالة'. وإلا، فسيتم طباعة الرسالة الافتراضية.

#!/بن/باش

# خذ قيمة الشهر الحالي بالرقم

يقرأ 'أدخل شهر اليوم بالرقم:' ب_شهر

# اطبع النص قبل طباعة اسم الشهر

صدى صوت 'اسم الشهر الحالي هو'

#اكتشف واطبع اسم الشهر المطابق بناءً على الإدخال

قضية $b_month في

1 | 01 ) صدى صوت 'يناير.' ؛؛

2 | 02 ) صدى صوت 'شهر فبراير.' ؛؛

3 | 03 ) صدى صوت 'يمشي.' ؛؛

4 | 04 ) صدى صوت 'أبريل.' ؛؛

5 | 05 ) صدى صوت 'يمكن.' ؛؛

6 | 06 ) صدى صوت 'يونيو.' ؛؛

7 | 07 ) صدى صوت 'يوليو.' ؛؛

8 | 08 ) صدى صوت 'أغسطس.' ؛؛

9 | 09 ) صدى صوت 'سبتمبر.' ؛؛

10 ) صدى صوت 'اكتوبر.' ؛؛

أحد عشر ) صدى صوت 'شهر نوفمبر.' ؛؛

12 ) صدى صوت 'ديسمبر.' ؛؛

* ) صدى صوت 'غير معثور عليه.' ؛؛

إسحاق

انتاج | :

يظهر الإخراج التالي بعد تنفيذ البرنامج النصي بقيمة 6:

  ص10-1

يظهر الإخراج التالي بعد تنفيذ البرنامج النصي بقيمة 09:


  ص10-2

تظهر المخرجات التالية بعد تنفيذ البرنامج النصي بقيمة 14:

  ص10-3

اذهب إلى الأعلى

خاتمة

يتم عرض الاستخدامات المختلفة للمنطق الشرطي باستخدام عبارات 'if' و'case' في الأمثلة العشرة لهذا البرنامج التعليمي. سيتم توضيح مفهوم استخدام المنطق الشرطي في Bash لمستخدمي Bash الجدد بعد قراءة هذا البرنامج التعليمي.