ذكري المظهر

باش إذا..البيان

ديريها تحت راسك مع وقت السحور باش حبيبك عليك ما يصبر ويجي حتى لعندك ومايقدر على فراقك

ديريها تحت راسك مع وقت السحور باش حبيبك عليك ما يصبر ويجي حتى لعندك ومايقدر على فراقك

جدول المحتويات:

Anonim

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

في هذا البرنامج التعليمي ، سوف نتعرف على أساسيات Bash if العبارات ونوضح لك كيفية استخدامها في البرامج النصية الخاصة بك.

if بيان

باش if الشرطية يمكن أن يكون لها أشكال مختلفة. أبسط if البيان يأخذ الشكل التالي:

if TEST-COMMAND then STATEMENTS fi

تبدأ عبارة if بالكلمة المفتاحية if متبوعة بالتعبير الشرطي والكلمة الرئيسية التي تليها. ينتهي البيان بكلمة fi .

إذا تم تقييم TEST-COMMAND إلى True ، STATEMENTS تنفيذ STATEMENTS . إذا كانت TEST-COMMAND تُرجع False ، فلن يحدث شيء ، يتم تجاهل STATEMENTS .

بشكل عام ، من الجيد دائمًا وضع مسافة بادئة لرمز التعليمات البرمجية وفصل الكتل البرمجية مع خطوط فارغة. معظم الناس يختارون استخدام المسافة البادئة ذات المسافات الأربعة أو المسافات البادئة. المسافات البادئة وخطوط فارغة تجعل رمزك أكثر قابلية للقراءة وتنظيمه.

دعونا نلقي نظرة على المثال النصي التالي الذي يتحقق ما إذا كان عدد معين أكبر من 10.

#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." fi

احفظ الكود في ملف وقم بتشغيله من سطر الأوامر:

bash test.sh

سيطالبك البرنامج النصي بإدخال رقم. على سبيل المثال ، إذا قمت بإدخال 15 ، فسيتم تقييم الأمر test إلى true لأن الرقم 15 أكبر من 10 ، وسيتم تنفيذ الأمر echo داخل جملة then .

The variable is greater than 10.

if..else statement

تأخذ العبارة Bash if..else النموذج التالي:

if TEST-COMMAND then STATEMENTS1 else STATEMENTS2 fi

إذا تم تقييم TEST-COMMAND إلى True ، فسيتم تنفيذ البيانات 1. خلاف ذلك ، إذا TEST-COMMAND False ، فسيتم تنفيذ البيانات 2. يمكن أن يكون لديك جملة واحدة فقط في البيان.

دعنا نضيف جملة أخرى إلى البرنامج النصي المثال السابق:

#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." else echo "The variable is equal or less than 10." fi

if..elif..else statement

Bash if..elif..else يأخذ البيان التالي:

if TEST-COMMAND1 then STATEMENTS1 elif TEST-COMMAND2 then STATEMENTS2 else STATEMENTS3 fi

إذا تم تقييم TEST-COMMAND1 إلى True ، فسيتم تنفيذ البيانات 1. إذا تم تقييم TEST-COMMAND2 إلى True ، فسيتم تنفيذ البيانات 2. إذا تم تقييم أي من أوامر الاختبار إلى True ، STATEMENTS2 تنفيذ STATEMENTS2 .

يمكن أن يكون لديك جملة أو أكثر من elif في البيان. بند else هو اختياري.

يتم تقييم الشروط بالتتابع. بمجرد عودة الشرط ، لا يتم تنفيذ الشروط المتبقية وينتقل التحكم في البرنامج إلى نهاية عبارات if .

دعنا نضيف جملة elif إلى البرنامج النصي السابق:

#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." elif] then echo "The variable is equal to 10." else echo "The variable is less than 10." fi

متداخلة if البيانات

يسمح لك Bash بتداخل البيانات if العبارات. يمكنك وضع متعددة if العبارة داخل آخر if البيان.

سيطالبك البرنامج النصي التالي بإدخال ثلاثة أرقام وسيطبع أكبر عدد من الأرقام الثلاثة.

#!/bin/bash echo -n "Enter the first number: " read VAR1 echo -n "Enter the second number: " read VAR2 echo -n "Enter the third number: " read VAR3 if] then if] then echo "$VAR1 is the largest number." else echo "$VAR3 is the largest number." fi else if] then echo "$VAR2 is the largest number." else echo "$VAR3 is the largest number." fi fi

إليك كيف سيبدو الإخراج:

Enter the first number: 4 Enter the second number: 7 Enter the third number: 2 7 is the largest number. بدلاً من استخدام العبارات المتداخلة ، عادة ما يكون استخدام بيان الحالة أكثر فعالية.

شروط متعددة

تسمح لك عوامل التشغيل OR و AND المنطقية باستخدام شروط متعددة في عبارات if .

فيما يلي إصدار آخر من البرنامج النصي لطباعة أكبر عدد من الأرقام الثلاثة. في هذا الإصدار ، بدلاً من البيانات المتداخلة if ، سنستخدم عامل التشغيل AND ( && ) المنطقي.

#!/bin/bash echo -n "Enter the first number: " read VAR1 echo -n "Enter the second number: " read VAR2 echo -n "Enter the third number: " read VAR3 if] &&] then echo "$VAR1 is the largest number." elif] &&] then echo "$VAR2 is the largest number." else echo "$VAR3 is the largest number." fi

اختبار مشغلي

في Bash ، يأخذ أمر test أحد أشكال بناء الجملة التالية:

test EXPRESSION]

لإلغاء تعبير الاختبار ، استخدم عامل التشغيل NOT ( ! ) المنطقي. عند مقارنة السلاسل ، استخدم دائمًا علامات اقتباس مفردة أو مزدوجة لتجنب أية مشكلات في تقسيم الكلمات أو إهمالها.

فيما يلي بعض العوامل الأكثر استخدامًا:

  • -n VAR - صواب إذا كان طول VAR أكبر من الصفر. -z VAR - صواب إذا كانت VAR فارغة. STRING1 = STRING2 - صواب [STRING1 و STRING2 متساويان. STRING1 != STRING2 - صحيح STRING1 و STRING2 غير متساوين. INTEGER1 -eq INTEGER2 - صحيح INTEGER1 و INTEGER2 متساويان. INTEGER1 -gt INTEGER2 - صحيح INTEGER1 أكبر من INTEGER2. INTEGER1 -lt INTEGER2 - صحيح INTEGER1 أقل من INTEGER2. INTEGER1 -ge INTEGER2 - صحيح INTEGER1 يساوي أو أكبر من INTEGER2. INTEGER1 -le INTEGER2 - صحيح INTEGER1 يساوي أو أقل من INTEGER2. -h FILE - صحيح إذا كان الملف موجودًا وهو رابط رمزي. -r FILE - صواب إذا كان الملف موجودًا وقابل للقراءة. -w FILE - صحيح إذا كان الملف موجودًا وقابل للكتابة. -x FILE - صواب إذا كان الملف موجودًا وقابل للتنفيذ. -d FILE - صواب في حالة وجود الملف وهو دليل. -e FILE - صواب إذا كان الملف موجودًا وكان ملفًا ، بغض النظر عن النوع (العقدة ، الدليل ، المقبس ، إلخ). -f FILE - صواب إذا كان الملف موجودًا وكان ملفًا عاديًا (وليس دليلًا أو جهازًا).

استنتاج

تسمح لك عبارات if ، if..else و if..elif..else بالتحكم في تدفق تنفيذ نص Bash من خلال تقييم الشروط المحددة.

محطة باش