دليل المبتدئين إلى BASH - مقارنة الأشياء
في الجزء السابق من البرنامج التعليمي BASH نظرنا في البيانات الشرطية.
كان هذا الدليل طويلاً جدًا ولكنه أظهر فقط كيفية التحكم في تدفق المنطق. يوضح هذا الدليل الطرق المختلفة التي يمكنك من خلالها مقارنة المتغيرات.
توضح الصورة الموضحة أعلاه المثال الأول في دليل هذا الأسبوع:
#! / بن / سحقNAME1 = "غاري"NAME2 = "بوب"if "$ name1" = "$ name2"ثم صدى "تطابق الأسماء"آخر صدى "الأسماء لا تتطابق"فايفي البرنامج النصي أعلاه قمت بتعريف اثنين من المتغيرات يسمى name1 و name2 وقمنا بتعيينهما القيم "gary" و "bob". بما أن المتغيرات متضمنة بين علامات الاقتباس ، فإنها تسمى متغيرات السلسلة التي تصبح أكثر أهمية كلما استمر البرنامج التعليمي. لا يقوم البرنامج النصي بأكمله بمقارنة قيمة $ name1 و $ name2 وإذا كانا يطابقان إخراج السلسلة "تطابق الأسماء" وإذا لم يخرجوا السلسلة "فإن الأسماء غير متطابقة". تعتبر علامات الاقتباس حول المتغيرات $ name1 و $ name2 مهمة لأنه إذا لم يتم تعيين قيمة أي منهما ، فسيظل البرنامج النصي يعمل. على سبيل المثال ، إذا لم يتم تعيين $ name1 ، فستقارن "" بـ "bob". بدون علامات الاقتباس سيتم تركك مع = "bob" الذي يفشل بشكل واضح. يمكنك أيضًا استخدام! = الترميز لتعريف لا يساوي كما يلي: في المثال أعلاه ، يقارن الاختبار نفس السمتين ويطرح السؤال الذي يأتي به gary قبل bob في الأبجدية؟ الاجابة بوضوح هي لا. يقدم البرنامج النصي أقل من المشغل (<). نظرًا لاستخدام أقل من المشغل أيضًا لإعادة التوجيه ، يجب عليك الفرار منه باستخدام علامة مائلة () حتى تعني أقل مما هو السبب في السيناريو أعلاه مقارنة بـ "$ name1" <"$ name2". عكس أقل من الواضح هو أكبر من. بدلاً من استخدام <use >. فمثلا إذا كنت ترغب في اختبار ما إذا كان للمتغير قيمة ، فيمكنك استخدام الاختبار التالي: في البرنامج النصي أعلاه لقد اختبرت ما إذا كان $ name2 قد أعطيت قيمة وما لم تكن الرسالة "لا يوجد bob ، لم يكن هناك أبداً". في الشريحة السابقة قمنا بتغطية ما إذا كان قد تم تعيين متغير أم لا. في بعض الأحيان قد يكون تم تعيين متغير ولكن في بعض الأحيان قد لا يكون لها قيمة. على سبيل المثال: لاختبار ما إذا كان المتغير له قيمة أم لا (أي له طول صفري) استخدم -z كما يلي: في البرنامج النصي أعلاه قمت بتعيين $ name1 إلى سلسلة طول صفري ثم مقارنتها باستخدام --z. إذا كانت قيمة $ name1 صفرية ، فسيتم عرض الرسالة "gary has out out the the evening". حتى الآن جميع المقارنات كانت للسلاسل. ماذا عن مقارنة الارقام؟ يعرض النص أعلاه مثالاً لمقارنة رقمين: لتعيين متغير ليكون رقم ببساطة تعيينه دون علامات اقتباس. يمكنك بعد ذلك مقارنة الأرقام مع علامة يساوي. لكنني أفضل استخدام المشغل التالي لمقارنة رقمين: إذا كنت ترغب في مقارنة ما إذا كان الرقم أقل من رقم آخر ، فيمكنك استخدام أقل من عامل التشغيل (<). كما هو الحال مع السلاسل ، يجب عليك الهروب من أقل من المشغل باستخدام شرطة مائلة. ( <). هناك طريقة أفضل لمقارنة الأرقام وهي استخدام الترميز التالي بدلاً من ذلك: فمثلا: أخيرًا لهذا الدليل ، إذا كنت تريد اختبار ما إذا كان رقمين مختلفين ، فيمكنك استخدام إما أقل من أو أكثر من المشغلين معًا (<>) أو - على النحو التالي: إذا فاتتك الأجزاء الثلاثة الأولى من هذا الدليل ، يمكنك العثور عليها بالنقر فوق الروابط التالية: في الجزء التالي من الدليل سأقوم بتغطية الحساب. دليل المبتدئين إلى باش - مقارنة السلاسل
دليل المبتدئين إلى باش - مقارنة السلاسل
دليل المبتدئين إلى باش - مقارنة السلاسل
دليل المبتدئين إلى BASH - مقارنة الأرقام
دليل المبتدئين إلى BASH - مقارنة الأرقام
دليل المبتدئين إلى BASH - مقارنة الأرقام
دليل المبتدئين إلى BASH - مشغلي المقارنة - ملخص