كيفية كتابة IF-Statements في Bash-Script

الأوامر والنُسخ والأمثلة

باستخدام if-statement ، وهو نوع من العبارات الشرطية ، يمكنك تنفيذ إجراءات مختلفة وفقًا للشروط المحددة. إنه يعطي النظام القدرة على اتخاذ القرارات.

مثال على أبسط شكل لبيان if سيكون:

عد = 5 إذا كان [$ count == 5] ثم صدى "$ count" fi

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

تقوم عبارة "echo" بطباعة الوسيطة الخاصة بها ، في هذه الحالة ، قيمة المتغير "count" ، إلى النافذة الطرفية. المسافة البادئة من التعليمات البرمجية بين الكلمات الأساسية من if-statement بتحسين القراءة ولكن ليس من الضروري.

إذا كان لديك موقف حيث يجب تنفيذ جزء من التعليمات البرمجية فقط إذا كان الشرط غير صحيح ، يمكنك استخدام الكلمة "آخر" في if-statement ، كما في هذا المثال:

عد = 5 إذا كان [$ count == 5] ثم صدى "$ count" آخر echo "count is not 5" fi

إذا كان الشرط "$ count == 5" صحيحًا ، فإن النظام يطبع قيمة المتغير "count" ، وإلا فإنه يطبع السلسلة "count is not 5".

إذا كنت تريد التفريق بين شروط متعددة ، فيمكنك استخدام الكلمة الرئيسية "elif" ، والمشتقة من "آخر إذا" ، كما في هذا المثال:

إذا كان [$ count == 5] ، ثم صدى "count is five" elif [$ count == 6] ، ثم صدى "count is six" else echo "none of the above" fi

إذا كان "count" هو "5" ، يقوم النظام بطباعة "count is five". إذا كان "count" ليس "5" بل "6" ، يقوم النظام بطباعة "count is six". إذا لم يكن "5" ولا "6" ، يقوم النظام بطباعة "لا شيء مما سبق".

كما قد تكون خمنت ، يمكنك الحصول على أي عدد من بنود "elif". مثال مع شروط "elif" متعددة سيكون:

إذا كان [$ count == 5] ، ثم صدى "count is five" elif [$ count == 6] ، ثم صدى "count is six" elif [$ count == 7] ثم صدى "count is seven" elif [$ count = = 8] ثم صدى "العد هو ثمانية" elif [$ count == 9] ، ثم صدى "العد هو تسعة" آخر صدى "لا شيء من فوق" فاي

والطريقة الأكثر انسيابية لكتابة مثل هذه العبارات مع شروط متعددة هي طريقة الحالة . وهو يعمل بشكل مشابه لبيان if مع عبارات "elif" متعددة ولكنه أكثر إيجازًا. على سبيل المثال ، يمكن إعادة كتابة جزء التعليمات البرمجية أعلاه مع عبارة "الحالة" كما يلي:

case "$ count" in 5) echo "count is five" ؛؛ 6) صدى "العد ستة" ؛ 7) صدى "العد سبعة"؛ 8) صدى "العد ثمانية" ؛ 9) صدى "العد تسع" ؛ *) صدى "لا شيء من فوق" esac

غالبًا ما يتم استخدام عبارات if-داخل الحلقات أو الحلقات أثناء تواجدها في هذا المثال:

count = 1 done = 0 بينما [$ count -le 9] تنام 1 ((count ++)) إذا كان [$ count == 5] ثم تابع fi echo "$ count" done echo تم الانتهاء منه

يمكنك أيضا أن تكون متداخلة إذا كانت البيانات. أبسط متداخلة إذا كان البيان من النموذج: if ... then ... else ... if ... then ... fi ... fi. ومع ذلك ، يمكن أن تتداخل if-statement مع التعقيد التعسفي.

راجع أيضًا كيفية تمرير الوسائط إلى برنامج نصي bash ، والذي يوضح كيفية استخدام الشروط الشرطية لمعالجة المعلمات التي تم تمريرها من سطر الأوامر.

يوفر bash shell بنى برمجة أخرى ، مثل for-loops ، while-loops ، وعبارات حسابية .