يمكن استخدام أمر الاختبار على سطر أوامر Linux لمقارنة عنصر واحد مقابل آخر ، إلا أنه يُستخدم بشكل أكثر شيوعًا في برامج نصوص BASH shell كجزء من العبارات الشرطية التي تتحكم في المنطق وتدفق البرنامج.
مثال أساسي
يمكنك تجربة هذه الأوامر ببساطة عن طريق فتح نافذة طرفية.
test 1 -eq 2 && echo "yes" || صدى "لا"
يمكن تقسيم الأمر الموضح أعلاه كما يلي: في جوهرها ، يقارن الأمر بين 1 و 2 ، وفي حالة تطابقها ، يتم تنفيذ العبارة echo "yes" التي تعرض "yes" وإذا لم تتطابق ، يتم تنفيذ العبارة "no" للصدى التي تعرض "no". إذا كنت تقارن العناصر التي تحلل الأرقام ، فيمكنك استخدام عوامل المقارنة التالية: أمثلة test 1 -eq 2 && echo "yes" || صدى "لا"
(يعرض "لا" على الشاشة لأن 1 لا يساوي 2) test 1 -ge 2 && echo "yes" || صدى "لا"
(يعرض "لا" على الشاشة لأن 1 ليس أكبر أو يساوي 2) اختبار 1 -gt 2 && صدى "نعم" || صدى "لا"
(يعرض "لا" على الشاشة لأن 1 ليس أكبر من 2) test 1 -le 2 && echo "yes" || صدى "لا"
(يعرض "نعم" على الشاشة لأن 1 أقل من أو يساوي 2) اختبار 1 -lt 2 && صدى "نعم" || صدى "لا"
(يعرض "نعم" على الشاشة لأن 1 أقل من أو يساوي 2) test 1 -ne 2 && echo "yes" || صدى "لا"
(يعرض "نعم" على الشاشة لأن 1 لا يساوي 2) إذا كنت تقارن العناصر التي تقوم بتحليلها كسلسلة ، فيمكنك استخدام عوامل المقارنة التالية: أمثلة test "string1" = "string2" && echo "yes" || صدى "لا"
(يعرض "لا" على الشاشة لأن "string1" لا يساوي "string2") test "string1"! = "string2" && echo "yes" || صدى "لا"
(يعرض "نعم" على الشاشة لأن "string1" لا يساوي "string2") test -n "string1" && echo "yes" || صدى "لا"
(يعرض "نعم" على الشاشة لأن "string1" له طول سلسلة أكبر من الصفر) test -z "string1" && echo "yes" || صدى "لا"
(يعرض "لا" على الشاشة لأن "string1" له طول سلسلة أكبر من الصفر) إذا كنت تقارن الملفات ، فيمكنك استخدام عوامل المقارنة التالية: أمثلة test / path / to / file1 -nt / path / to / file2 && echo "yes"
(إذا كان file1 أحدث من file2 فسيتم عرض الكلمة "yes") test -e / path / to / file1 && echo "yes"
(في حالة وجود file1 سيتم عرض الكلمة "نعم") test -O / path / to / file1 && echo "yes"
(إذا كنت تملك file1 ، فسيتم عرض كلمة "yes" ") المصطلح حتى الآن ، كان كل شيء يقارن بشيء ضد آخر ، ولكن ماذا لو كنت تريد مقارنة شرطين؟ على سبيل المثال ، إذا كان الحيوان لديه 4 أرجل ويذهب "moo" ، فمن المحتمل أنه بقرة. ببساطة التحقق من 4 أرجل لا يضمن أن يكون لديك بقرة ، ولكن التحقق من الصوت الذي يقوم به بالتأكيد. لاختبار كل الشروط في وقت واحد استخدم العبارة التالية: test 4 -eq 4 -a "moo" = "moo" && echo "إنها بقرة" || صدى "انها ليست بقرة"
الجزء الرئيسي هنا هو -a الذي يرمز إليه و . هناك طريقة أفضل وأكثر شيوعًا لإجراء الاختبار نفسه وهي كما يلي: test 4 -eq 4 && test "moo" = "moo" && echo "it is a cow" || صدى "انها ليست بقرة"
اختبار آخر قد ترغب في إجراءه هو مقارنة عبورتين وإذا كان أي منهما صحيحًا ، فقم بإنتاج سلسلة. على سبيل المثال ، إذا كنت تريد التحقق من وجود ملف يسمى "file1.txt" أو وجود ملف يسمى "file1.doc" ، يمكنك استخدام الأمر التالي: test -e file1.txt -o -e file1.doc && echo "file1 موجود" || صدى "file1 غير موجود"
الجزء الرئيسي هنا هو -o الذي يرمز إليه أو . هناك طريقة أفضل وأكثر شيوعًا لإجراء الاختبار نفسه وهي كما يلي: test -e file1.txt || test -e file1.doc && echo "file1 موجود" || صدى "file1 غير موجود" لا تحتاج في الواقع إلى استخدام اختبار الكلمة لإجراء المقارنة. كل ما عليك القيام به هو إرفاق العبارة بين قوسين مربعين على النحو التالي: -e file1.txt && echo "file1 موجود" || صدى "file1 غير موجود"
و و يعني أساسا نفس الاختبار. الآن أنت تعرف هذا يمكنك تحسين مقارنة شروط متعددة على النحو التالي: 4 -eq 4 && "moo" = "moo" && echo "إنها بقرة" || صدى "انها ليست بقرة"-e file1.txt || -e file1.doc && echo "file1 موجود" || صدى "file1 غير موجود" يعتبر الأمر الاختبار أكثر فائدة في البرامج النصية لأنه يمكنك اختبار قيمة متغير واحد مقابل آخر والتحكم في تدفق البرنامج. في سطر الأوامر القياسي ، يمكنك استخدامه لاختبار ما إذا كان الملف موجودًا أم لا.
مقارنة الارقام
مقارنة النص
مقارنة الملفات
مقارنة شروط متعددة
القضاء على اختبار الكلمة
ملخص