باستخدام 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 ، وعبارات حسابية.