الفرق بين المراجعتين لصفحة: «Ruby/Kernel/test»

من موسوعة حسوب
< Ruby‏ | Kernel
لا ملخص تعديل
تدقيق
 
سطر 3: سطر 3:
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Kernel]]
[[تصنيف: Ruby Kernel]]
يستخدم التابع <code>test</code> الحرف المٌعطى <code>cmd</code> لإجراء عدة اختبارات على <code>file1</code> (الجدول الأول أدناه) أو على <code>file1</code> و <code>file2</code> (الجدول الثاني).
يجري التابع <code>test</code> عدة اختبارات على ملف واحد أو على ملفين.
اختبارات <code>File</code> على ملف واحد:
==البنية العامة==
<syntaxhighlight lang="ruby">test(cmd, file1 [, file2] ) → obj‎</syntaxhighlight>
==المعاملات==
===<code>cmd‎</code>===
يحدد الاختبار المراد تطبيقه. اختبارات <code>[[Ruby/File|File]]</code> التي تطبَّق على ملف واحد هي:
{| class="wikitable"
{| class="wikitable"
!Cmd 
!المعامل <code>cmd</code>
!يعيد
!نوع القيمة المعادة
!شرح
!وصف
|-
|-
|<code>"A"</code>
|<code>"A"</code>
|Time  
|Time
|توقيت آخر دخول إلى <code>file1</code>
|توقيت آخر دخول إلى الملف <code>file1</code>.
|-
|-
|<code>"b"</code>
|<code>"b"</code>
|قيمة منطقية
|قيمة منطقية
|يعيد <code>True</code> إن كان <code>file1</code> من النوع block device
|يعيد <code>True</code> إن كان الملف <code>file1</code> جهازًا كتليًّا (block device).
|-
|-
|<code>"c"</code>
|<code>"c"</code>
|قيمة منطقية
|قيمة منطقية
|يعيد <code>True</code> إن كان <code>file1</code> من النوع character device
|يعيد <code>True</code> إن كان <code>file1</code> من النوع جهازًا محرفيًّا (character device).
|-
|-
|<code>"C"</code>
|<code>"C"</code>
|Time
|Time
|توقيت آخر تغيير في <code>file1</code>
|توقيت آخر تغيير في الملف <code>file1</code>.
|-
|-
|<code>"d"</code>
|<code>"d"</code>
|قيمة منطقية
|قيمة منطقية
|يعيد <code>True</code> إن كان <code>file1</code> موجودًا وكان مجلدًا
|يعيد <code>True</code> إن كان الملف <code>file1</code> موجودًا وكان مجلدًا.
|-
|-
|<code>"e"</code>
|<code>"e"</code>
|قيمة منطقية
|قيمة منطقية
|يعيد <code>True</code> إن كان <code>file1</code> موجودًا
|يعيد <code>True</code> إن كان الملف <code>file1</code> موجودًا.
|-
|-
|<code>"f"</code>
|<code>"f"</code>
|قيمة منطقية
|قيمة منطقية
|يعيد <code>True</code> إن كان <code>file1</code> موجودًا وكان ملفا عاديا
|يعيد <code>True</code> إن كان الملف <code>file1</code> موجودًا وكان ملفًا عاديًّا.
|-
|-
|<code>"g"</code>
|<code>"g"</code>
|قيمة منطقية
|قيمة منطقية
|يعيد <code>True</code>إن كانت البتة‎ <code>\CF{setgid}</code>‎الخاصة بـ<code>file1</code> مُعيّنة (ليست معينة في NT)،
|يعيد <code>True</code>إن كان البت ‎ <code>\CF{setgid}</code>‎الخاص بالملف <code>file1</code> مُعيّن (تكون false في NT).
|-
|-
|<code>"G"</code>
|<code>"G"</code>
|قيمة منطقية
|قيمة منطقية
|يعيد <code>True</code> إن كان <code>file1</code> موجودًا وكانت مجموعته مساوية لمجموعة المُُستدعي.
|يعيد <code>True</code> إن كان الملف <code>file1</code> موجودًا وكانت مجموعته مساوية لمجموعة المُُستدعي.
|-
|-
|<code>"k"</code>
|<code>"k"</code>
|قيمة منطقية
|قيمة منطقية
|يعيد <code>True</code> إن كان <code>file1</code> موجودًا وكانت البتة اللزجة (sticky bit) مُعيّنة.
|يعيد <code>True</code> إن كان الملف <code>file1</code> موجودًا وكان البت اللاصق (sticky bit) مُعيّنًا فيه.
|-
|-
|<code>"l"</code>
|<code>"l"</code>
|قيمة منطقية
|قيمة منطقية
|يعيد <code>True</code> إن كان <code>file1</code> موجودًا وكان رابطا رمزيا (symbolic link).
|يعيد <code>True</code> إن كان الملف <code>file1</code> موجودًا وكان وصلةً رمزيةً (symbolic link).
|-
|-
|<code>"M"</code>
|<code>"M"</code>
|Time
|Time
|توقيت آخر تعديل على <code>file1</code>
|توقيت آخر تعديل على الملف <code>file1</code>.
|-
|-
|<code>"o"</code>
|<code>"o"</code>
|قيمة منطقية
|قيمة منطقية
|يعيد <code>True</code> إن كان <code>file1</code> موجودًا وكان مملوكا المعرف العملي للمُستدعي (caller's effective uid).
|يعيد <code>True</code> إن كان الملف <code>file1</code> موجودًا وكان معرِّف المالك فيه (أي مالك الملف) مساويًّا للمعرف الفعلي (effective uid) للمُستدعي.
|-
|-
|<code>"O"</code>
|<code>"O"</code>
|قيمة منطقية
|قيمة منطقية
|يعيد <code>True</code> إن كان <code>file1</code> موجودًا وكان مملوكا المعرف الحقيقي للمُستدعي (caller's real uid).
|يعيد <code>True</code> إن كان <code>file1</code> موجودًا وكان معرِّف المالك فيه (أي مالك الملف) مساويًّا للمعرف الحقيقي (real uid) للمُستدعي.
|-
|-
|<code>"p"</code>
|<code>"p"</code>
|قيمة منطقية
|قيمة منطقية
|يعيد <code>True</code> إن كان <code>file1</code> موجودًا وكان من النوع fifo
|يعيد <code>True</code> إن كان الملف <code>file1</code> موجودًا وكان من النوع fifo
|-
|-
|<code>"r"</code>
|<code>"r"</code>
|قيمة منطقية
|قيمة منطقية
|يعيد <code>True</code> إن كان <code>file1</code> قابلا للقراءة من المعرف العملي للمُستدعي (effective uid/gid of the caller).
|يعيد <code>True</code> إن كان الملف <code>file1</code> قابلًا للقراءة من المعرف الفعلي للمُستدعي أو مجموعته (effective uid/gid).
|-
|-
|<code>"R"</code>
|<code>"R"</code>
|قيمة منطقية
|قيمة منطقية
|يعيد <code>True</code> إن كان <code>file1</code> قابلا للقراءة من المعرف الحقيقي للمُستدعي (real uid/gid of the caller).
|يعيد <code>True</code> إن كان الملف <code>file1</code> قابلًا للقراءة من المعرف الحقيقي للمُستدعي أو مجموعته (real uid/gid).
|-
|-
|<code>"s"</code>
|<code>"s"</code>
|int/nil
|int/nil
|إن كان حجم <code>file1</code> غير معدوم، فسيعيد الحجم، أو سيعيد <code>nil</code>.  
|إن كان حجم الملف <code>file1</code> غير معدوم، فسيعيد الحجم، أو سيعيد القيمة <code>nil</code>.
|-
|-
|<code>"S"</code>
|<code>"S"</code>
|قيمة منطقية
|قيمة منطقية
|يعيد <code>True</code> إن كان <code>file1</code> موجودًا وكان من النوع socket
|يعيد <code>True</code> إن كان الملف <code>file1</code> موجودًا وكان مقبسًا.
|-
|-
|<code>"u"</code>
|<code>"u"</code>
|قيمة منطقية
|قيمة منطقية
|يعيد <code>True</code>إن كانت البتة‎ <code>setuid</code> ‎الخاصة بـ<code>file1</code>  مُعيّنة
|يعيد <code>True</code> إن كان البت ‎ <code>setuid</code>‎الخاصة بالملف <code>file1</code>  مُعيّن.
|-
|-
|<code>"w"</code>
|<code>"w"</code>
|قيمة منطقية
|قيمة منطقية
|يعيد <code>True</code> إن كان <code>file1</code> قابلا للكتابة من المعرف العملي للمُستدعي (effective uid/gid of the caller).
|يعيد <code>True</code> إن كان الملف <code>file1</code> قابلًا للكتابة من المعرف الفعلي للمُستدعي أو مجموعته (effective uid/gid).
|-
|-
|<code>"W"</code>
|<code>"W"</code>
|قيمة منطقية
|قيمة منطقية
|يعيد <code>True</code> إن كان <code>file1</code> قابلا للكتابة من المعرف الحقيقي للمُستدعي (real  uid/gid of the caller).
|يعيد <code>True</code> إن كان الملف <code>file1</code> قابلًا للكتابة من المعرف الحقيقي للمُستدعي أو مجموعته (real  uid/gid).
|-
|-
|<code>"x"</code>  
|<code>"x"</code>
|قيمة منطقية
|قيمة منطقية
|يعيد <code>True</code> إن كان <code>file1</code> قابلا للتنفيذ من المعرف العملي للمُستدعي (effective uid/gid of the caller).
|يعيد <code>True</code> إن كان الملف <code>file1</code> قابلًا للتنفيذ من المعرف الفعلي للمُستدعي أو مجموعته (effective uid/gid).
|-
|-
|<code>"X"</code>  
|<code>"X"</code>
|قيمة منطقية
|قيمة منطقية
|يعيد <code>True</code> إن كان <code>file1</code> قابلا للتنفيذ من المعرف الحقيقي للمُستدعي (real  uid/gid of the caller).
|يعيد <code>True</code> إن كان الملف <code>file1</code> قابلًا للتنفيذ من المعرف الحقيقي للمُستدعي أو مجموعته (real  uid/gid).
|-
|-
|<code>"z"</code>
|<code>"z"</code>
|قيمة منطقية
|قيمة منطقية
|يعيد <code>True</code> إن كان <code>file1</code> موجودًا وطوله غير معدوم
|يعيد <code>True</code> إن كان الملف <code>file1</code> موجودًا وطوله معدوم (zero length).
|}
|}الاختبارات التي تطبَّق على ملفين هي:
الاختبارات التي تشمل ملفين:
{| class="wikitable"
{| class="wikitable"
!المعامل cmd
!نوع القيمة المعادة
!وصف
|-
|<code>"-"</code>
|<code>"-"</code>
|قيمة منطقية
|قيمة منطقية
|يعيد <code>True</code> إن كان <code>file1</code> و <code>file2</code> متطابقين.
|يعيد <code>True</code> إن كان الملف <code>file1</code> والملف <code>file2</code> متطابقين.
|-
|-
|<code>"="</code>
|<code>"="</code>
|قيمة منطقية
|قيمة منطقية
|يعيد <code>True</code> إن كان توقيت تعديل <code>file1</code> و <code>file2</code> متساويين.
|يعيد <code>True</code> إن كان توقيت تعديل الملف <code>file1</code> والملف <code>file2</code> متساويين.
|-
|-
|<code>"<"</code>
|<code>"<"</code>
|قيمة منطقية
|قيمة منطقية
|يعيد <code>True</code> إن كان توقيت تعديل <code>file1</code> قبل توقيت تعديل <code>file2</code>.
|يعيد <code>True</code> إن كان توقيت تعديل الملف <code>file1</code> قبل توقيت تعديل الملف <code>file2</code>.
|-
|-
|<code>">"</code>
|<code>">"</code>
|قيمة منطقية
|قيمة منطقية
|يعيد <code>True</code> إن كان توقيت تعديل <code>file1</code> بعد توقيت تعديل<code>file2</code>.
|يعيد <code>True</code> إن كان توقيت تعديل الملف <code>file1</code> بعد توقيت تعديل الملف <code>file2</code>.
|}
|}
==البنية العامة==
<syntaxhighlight lang="ruby">test(cmd, file1 [, file2] ) → obj‎</syntaxhighlight>
==المعاملات==
===<code>cmd‎</code>===
يحدد الخيارات.
===<code>file1‎</code>===
===<code>file1‎</code>===
الملف الأول.
الملف الأول.
===<code>file2‎</code>===
===<code>file2‎</code>===
الملف الثاني.
الملف الثاني.
==القيمة المُعادة==
==القيمة المعادة==
يعيد كائنا بحسب قيمة الوسيط <code>cmd‎</code> (انظر الجدولين أعلاه).
يعيد كائنًا بحسب قيمة المعامل <code>cmd‎</code> أي يعاد ناتج الاختبار المطبَّق.
 
==انظر أيضا==
==انظر أيضا==
* التابع <code>[[Ruby/Kernel/system|system]]</code>: ينفذ التابع system الوسيط المعطى في صدفة فرعية (subshell).
*التابع <code>[[Ruby/Kernel/system|system]]</code>: ينفذ الأمر المُمرَّر إليه في صدفة فرعية (subshell).
 
==مصادر==
==مصادر==
*[http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-test قسم التابع test‎ في الصنف Kernel‎ في توثيق روبي الرسمي.]
*[http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-test قسم التابع test‎ في الصنف Kernel‎ في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 06:13، 17 نوفمبر 2018

يجري التابع test عدة اختبارات على ملف واحد أو على ملفين.

البنية العامة

test(cmd, file1 [, file2] )  obj

المعاملات

cmd‎

يحدد الاختبار المراد تطبيقه. اختبارات File التي تطبَّق على ملف واحد هي:

المعامل cmd نوع القيمة المعادة وصف
"A" Time توقيت آخر دخول إلى الملف file1.
"b" قيمة منطقية يعيد True إن كان الملف file1 جهازًا كتليًّا (block device).
"c" قيمة منطقية يعيد True إن كان file1 من النوع جهازًا محرفيًّا (character device).
"C" Time توقيت آخر تغيير في الملف file1.
"d" قيمة منطقية يعيد True إن كان الملف file1 موجودًا وكان مجلدًا.
"e" قيمة منطقية يعيد True إن كان الملف file1 موجودًا.
"f" قيمة منطقية يعيد True إن كان الملف file1 موجودًا وكان ملفًا عاديًّا.
"g" قيمة منطقية يعيد Trueإن كان البت ‎ \CF{setgid}‎الخاص بالملف file1 مُعيّن (تكون false في NT).
"G" قيمة منطقية يعيد True إن كان الملف file1 موجودًا وكانت مجموعته مساوية لمجموعة المُُستدعي.
"k" قيمة منطقية يعيد True إن كان الملف file1 موجودًا وكان البت اللاصق (sticky bit) مُعيّنًا فيه.
"l" قيمة منطقية يعيد True إن كان الملف file1 موجودًا وكان وصلةً رمزيةً (symbolic link).
"M" Time توقيت آخر تعديل على الملف file1.
"o" قيمة منطقية يعيد True إن كان الملف file1 موجودًا وكان معرِّف المالك فيه (أي مالك الملف) مساويًّا للمعرف الفعلي (effective uid) للمُستدعي.
"O" قيمة منطقية يعيد True إن كان file1 موجودًا وكان معرِّف المالك فيه (أي مالك الملف) مساويًّا للمعرف الحقيقي (real uid) للمُستدعي.
"p" قيمة منطقية يعيد True إن كان الملف file1 موجودًا وكان من النوع fifo
"r" قيمة منطقية يعيد True إن كان الملف file1 قابلًا للقراءة من المعرف الفعلي للمُستدعي أو مجموعته (effective uid/gid).
"R" قيمة منطقية يعيد True إن كان الملف file1 قابلًا للقراءة من المعرف الحقيقي للمُستدعي أو مجموعته (real uid/gid).
"s" int/nil إن كان حجم الملف file1 غير معدوم، فسيعيد الحجم، أو سيعيد القيمة nil.
"S" قيمة منطقية يعيد True إن كان الملف file1 موجودًا وكان مقبسًا.
"u" قيمة منطقية يعيد True إن كان البت ‎ setuid‎الخاصة بالملف file1 مُعيّن.
"w" قيمة منطقية يعيد True إن كان الملف file1 قابلًا للكتابة من المعرف الفعلي للمُستدعي أو مجموعته (effective uid/gid).
"W" قيمة منطقية يعيد True إن كان الملف file1 قابلًا للكتابة من المعرف الحقيقي للمُستدعي أو مجموعته (real uid/gid).
"x" قيمة منطقية يعيد True إن كان الملف file1 قابلًا للتنفيذ من المعرف الفعلي للمُستدعي أو مجموعته (effective uid/gid).
"X" قيمة منطقية يعيد True إن كان الملف file1 قابلًا للتنفيذ من المعرف الحقيقي للمُستدعي أو مجموعته (real uid/gid).
"z" قيمة منطقية يعيد True إن كان الملف file1 موجودًا وطوله معدوم (zero length).

الاختبارات التي تطبَّق على ملفين هي:

المعامل cmd نوع القيمة المعادة وصف
"-" قيمة منطقية يعيد True إن كان الملف file1 والملف file2 متطابقين.
"=" قيمة منطقية يعيد True إن كان توقيت تعديل الملف file1 والملف file2 متساويين.
"<" قيمة منطقية يعيد True إن كان توقيت تعديل الملف file1 قبل توقيت تعديل الملف file2.
">" قيمة منطقية يعيد True إن كان توقيت تعديل الملف file1 بعد توقيت تعديل الملف file2.

file1‎

الملف الأول.

file2‎

الملف الثاني.

القيمة المعادة

يعيد كائنًا بحسب قيمة المعامل cmd‎ أي يعاد ناتج الاختبار المطبَّق.

انظر أيضا

  • التابع system: ينفذ الأمر المُمرَّر إليه في صدفة فرعية (subshell).

مصادر