تعبيرات السلسلة
يتم استخدام التعبيرات التالية لتقييم السلاسل:
الجدول 27-2: تعبيرات سلسلة الاختبار
التعبير صحيح إذا ...
التعبير صحيح إذا ...
سلسلة سلسلة هو ليس لاشيء.
-n سلسلة طول سلسلة أكبر من الصفر.
-z سلسلة طول سلسلة صفر.
string1 = سلسلة 2 سلسلة 1 == سلسلة 2
السلسلة 1 والسلسلة 2 متساويتان. يمكن استخدام علامة مساواة مفردة أو مزدوجة، ولكن يُفضل استخدام علامتي مساواة مزدوجتين.
string1 != string2 string1 و string2 لا تتساوى. string1 > string2 string1 نوع بعد string2. string1 < string2 string1 يفرز من قبل string2.
تحذير: ال > و < يجب أن يتم وضع علامات اقتباس على مشغلي التعبيرات (أو يتم الإفلات منها باستخدام الشرطة المائلة العكسية) عند استخدامها مع تجربه بالعربيإذا لم تكن كذلك، فسيتم تفسيرها بواسطة shell على أنها عوامل إعادة توجيه، مما قد يؤدي إلى نتائج مدمرة. لاحظ أيضًا أنه بينما سحق تنص الوثائق على أن ترتيب الفرز يتوافق مع ترتيب التجميع للموقع الحالي، ولكنه ليس كذلك. يُستخدم ترتيب ASCII (POSIX) في إصدارات سحق حتى الإصدار 4.0 بما في ذلك.
فيما يلي نص برمجي يتضمن تعبيرات سلسلة:
#! / بن / باش
# test-string: تقييم قيمة السلسلة ANSWER=maybe
إذا [ -z "$ANSWER" ]؛ إذن
صدى "لا يوجد إجابة." >&2 الخروج 1
fi
إذا [ "$ANSWER" = "نعم" ]؛ ثم صدى "الإجابة هي نعم."
elif [ "$ANSWER" = "no" ]; ثم echo "الإجابة هي لا."
elif [ "$ANSWER" = "maybe" ]; ثم echo "الإجابة هي MAYBE."
آخر
صدى "الجواب غير معروف."
fi
#! / بن / باش
# test-string: تقييم قيمة السلسلة ANSWER=maybe
إذا [ -z "$ANSWER" ]؛ إذن
صدى "لا يوجد إجابة." >&2 الخروج 1
fi
إذا [ "$ANSWER" = "نعم" ]؛ ثم صدى "الإجابة هي نعم."
elif [ "$ANSWER" = "no" ]; ثم echo "الإجابة هي لا."
elif [ "$ANSWER" = "maybe" ]; ثم echo "الإجابة هي MAYBE."
آخر
صدى "الجواب غير معروف."
fi
في هذا البرنامج النصي، نقوم بتقييم الثابت إجابةنحدد أولاً ما إذا كانت السلسلة فارغة. إذا كانت كذلك، ننهي البرنامج النصي ونضبط حالة الخروج على واحد. لاحظ إعادة التوجيه المُطبّقة على أمر الصدى. هذا يُعيد توجيه رسالة الخطأ "لا توجد إجابة" إلى الخطأ القياسي، وهو الإجراء الصحيح مع رسائل الخطأ. إذا لم تكن السلسلة فارغة، نُقيّم قيمتها لمعرفة ما إذا كانت تساوي "نعم" أو "لا" أو "ربما". نفعل ذلك باستخدام أليف، وهو اختصار لـ "else if". باستخدام أليف، نتمكن من إنشاء اختبار منطقي أكثر تعقيدًا.