نسخة أكثر حداثة من الاختبار
الإصدارات الأخيرة من سحق تتضمن أمرًا مركبًا يعمل كبديل محسن لـ تجربه بالعربي. يستخدم بناء الجملة التالي:
[[ التعبير ]]
أين ، مثل تجربه بالعربي, التعبير هو تعبير يتم تقييمه إلى نتيجة صحيحة أو خاطئة. ال [[]] الأمر مشابه جدًا لـ تجربه بالعربي (إنه يدعم كل تعبيراته) ، لكن
يضيف تعبير سلسلة جديد مهم:
string1 =~ رجإكس
الذي يعود صحيحًا إذا string1 يطابقه التعبير العادي الممتد رجإكس. هذا يفتح الكثير من الاحتمالات لأداء مهام مثل التحقق من صحة البيانات. في مثالنا السابق عن التعبيرات الصحيحة ، سيفشل البرنامج النصي إذا كان الثابت INT تحتوي على أي شيء باستثناء عدد صحيح. يحتاج البرنامج النصي إلى طريقة للتحقق من احتواء الثابت على عدد صحيح. استخدام [[]] مع الالجائزة =~ عامل تعبير السلسلة ، يمكننا تحسين البرنامج النصي بهذه الطريقة:
#! / بن / باش
# test-صحيح 2: أوجد قيمة عدد صحيح.
ذكاء = -5
إذا [["$ INT" = ~ ^ -؟ [0-9] + $]] ؛ من ثم
إذا [$ INT -eq 0]؛ ثم صدى "INT هو صفر."
آخر
إذا [$ INT -lt 0] ؛ ثم صدى "INT سلبي."
آخر
صدى "INT إيجابي."
fi
إذا [$ ((INT٪ 2)) -eq 0] ؛ ثم صدى "INT حتى."
آخر
صدى "INT غريب."
fi
fi
آخر
صدى "INT ليس عددًا صحيحًا." > & 2 الخروج 1
fi
#! / بن / باش
# test-صحيح 2: أوجد قيمة عدد صحيح.
ذكاء = -5
إذا [["$ INT" = ~ ^ -؟ [0-9] + $]] ؛ من ثم
إذا [$ INT -eq 0]؛ ثم صدى "INT هو صفر."
آخر
إذا [$ INT -lt 0] ؛ ثم صدى "INT سلبي."
آخر
صدى "INT إيجابي."
fi
إذا [$ ((INT٪ 2)) -eq 0] ؛ ثم صدى "INT حتى."
آخر
صدى "INT غريب."
fi
fi
آخر
صدى "INT ليس عددًا صحيحًا." > & 2 الخروج 1
fi
من خلال تطبيق التعبير النمطي ، يمكننا تحديد قيمة INT إلى السلاسل التي تبدأ فقط بعلامة ناقص اختيارية ، متبوعة برقم واحد أو أكثر. هذا التفسير يلغي أيضا إمكانية القيم الفارغة.
ميزة أخرى مضافة من [[]] وهذا هو == المشغل يدعم مطابقة النمط بنفس طريقة توسيع اسم المسار. على سبيل المثال:
[me @ linuxbox ~] $ FILE = foo.bar
[me @ linuxbox ~] $ FILE = foo.bar
نسخة أكثر حداثة من الاختبار
[me @ linuxbox ~] $ إذا [[$ FILE == foo. *]] ؛ من ثم
> صدى "$ FILE يطابق النمط 'foo. *'"
> fi
يتطابق foo.bar مع النمط "foo. *"
[me @ linuxbox ~] $ إذا [[$ FILE == foo. *]] ؛ من ثم
> صدى "$ FILE يطابق النمط 'foo. *'"
> fi
يتطابق foo.bar مع النمط "foo. *"
وهذا يجعل [[]] مفيد لتقييم الملف وأسماء المسار.