English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

أمر test في الشل

يستخدم الأمر test في Shell للتحقق مما إذا كانت بعض الشروط صحيحة، يمكنه القيام بالاختبارات على الجوانب الثلاثة: عدد، نص، وملف.

اختبار عدد

المعلمات شرح
-eq متساوي يكون صحيحًا
-ne غير متساوي يكون صحيحًا
-gt أكبر يكون صحيحًا
-ge أكبر أو يساوي يكون صحيحًا
-lt أقل يكون صحيحًا
-le أقل أو يساوي يكون صحيحًا
num1=100
num2=100
if test $[num1] -eq $[num2]
then
    echo 'العددين متساويان!'
else
    echo 'العددين غير متساويان!'
fi

نتيجة الخروج:

العددين متساويان!

يقوم [] في الكود بالعمليات الحسابية الأساسية، مثل:

#!/bin/bash
a=5
b=6
result=$[a+b] # لاحظ أن لا يجب أن يكون هناك فراغ بين العلامة الثلاثية والصحيحة
echo "resultُ يساوي: $result"

النتيجة هي:

resultُ يساوي: 11

اختبار نص

المعلمات شرح
= متساوي يكون صحيحًا
!= غير متساوي يكون صحيحًا
-z نص الطول صفر يكون صحيحًا
-n نص الطول غير صفر يكون صحيحًا
num1="ru1noob"
num2="w3codebox"
if test $num1 = $num2
then
    echo 'تساوي الاثنين من النصوص!'
else
    echo 'لا تساوي الاثنين من النصوص!'
fi

نتيجة الخروج:

لا تساوي الاثنين من النصوص!

اختبار الملف

المعلمات شرح
-e اسم الملف إذا كان الملف موجودًا فإنه صحيح
-r اسم الملف إذا كان الملف موجودًا وكان قابلاً للقراءة فإنه صحيح
-w اسم الملف إذا كان الملف موجودًا وكان قابلاً للكتابة فإنه صحيح
-x اسم الملف إذا كان الملف موجودًا وكان قابلاً للتنفيذ فإنه صحيح
-s اسم الملف إذا كان الملف موجودًا وكان يحتوي على على الأقل حرفًا فإنه صحيح
-d اسم الملف إذا كان الملف موجودًا وكان مجلدًا فإنه صحيح
-f اسم الملف إذا كان الملف موجودًا وكان ملفًا عاديًا فإنه صحيح
-c اسم الملف إذا كان الملف موجودًا وكان ملفًا خاصًا حرفيًا فإنه صحيح
-b اسم الملف إذا كان الملف موجودًا وكان ملفًا خاصًا بلوكي فإنه صحيح
cd /bin
if test -e ./bash
then
    echo 'الملف موجود!'
else
    echo 'لا يوجد ملف!'
fi

نتيجة الخروج:

الملف موجود!

إضافة إلى ذلك، يقدم الشل مع ( -a )، ( -o )، و( ! ) كواحدة من العمليات المنطقية الثلاثة لربط شروط الاختبار، وتبدأ من أقصى إلى أدنى: ! الأعلى، -a الثانية، -o الأدنى. على سبيل المثال:

cd /bin
if test -e ./notFile -o -e ./bash
then
    echo 'على الأقل ملف موجود!'
else
    echo 'لا توجد ملفين!'
fi

نتيجة الخروج:

على الأقل ملف موجود!