الفرق بين المراجعتين ل"Ruby/Kernel/test"

من موسوعة حسوب
< Ruby‏ | Kernel
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>test‎</code> الخاص بالصنف <code>Kernel</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف...')
 
(تدقيق)
 
(مراجعة متوسطة واحدة بواسطة مستخدم واحد آخر غير معروضة)
سطر 3: سطر 3:
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Kernel]]
 
[[تصنيف: Ruby Kernel]]
يستخدم التابع test الحرف <code>cmd</code> لإجراء عدة اختبارات على <code>file1</code> (الجدول الأول أدناه) أو على <code>file1</code> و <code>file2</code> (الجدول الثاني).
+
يجري التابع <code>test</code> عدة اختبارات على ملف واحد أو على ملفين.
اختبارات <code>File</code> على ملف واحد:
 
<syntaxhighlight lang="ruby">Cmd    Returns  Meaning
 
"A"  | Time    | Last access time for file1
 
"b"  | boolean | True if file1 is a block device
 
"c"  | boolean | True if file1 is a character device
 
"C"  | Time    | Last change time for file1
 
"d"  | boolean | True if file1 exists and is a directory
 
"e"  | boolean | True if file1 exists
 
"f"  | boolean | True if file1 exists and is a regular file
 
"g"  | boolean | True if file1 has the \CF{setgid} bit
 
    |        | set (false under NT)
 
"G"  | boolean | True if file1 exists and has a group
 
    |        | ownership equal to the caller's group
 
"k"  | boolean | True if file1 exists and has the sticky bit set
 
"l"  | boolean | True if file1 exists and is a symbolic link
 
"M"  | Time    | Last modification time for file1
 
"o"  | boolean | True if file1 exists and is owned by
 
    |        | the caller's effective uid
 
"O"  | boolean | True if file1 exists and is owned by
 
    |        | the caller's real uid
 
"p"  | boolean | True if file1 exists and is a fifo
 
"r"  | boolean | True if file1 is readable by the effective
 
    |        | uid/gid of the caller
 
"R"  | boolean | True if file is readable by the real
 
    |        | uid/gid of the caller
 
"s"  | int/nil | If file1 has nonzero size, return the size,
 
    |        | otherwise return nil
 
"S"  | boolean | True if file1 exists and is a socket
 
"u"  | boolean | True if file1 has the setuid bit set
 
"w"  | boolean | True if file1 exists and is writable by
 
    |        | the effective uid/gid
 
"W"  | boolean | True if file1 exists and is writable by
 
    |        | the real uid/gid
 
"x"  | boolean | True if file1 exists and is executable by
 
    |        | the effective uid/gid
 
"X"  | boolean | True if file1 exists and is executable by
 
    |        | the real uid/gid
 
"z"  | boolean | True if file1 exists and has a zero length‎</syntaxhighlight>
 
اختبارات تشمل ملفين:
 
<syntaxhighlight lang="ruby">"-"  | boolean | True if file1 and file2 are identical
 
"="  | boolean | True if the modification times of file1
 
    |        | and file2 are equal
 
"<"  | boolean | True if the modification time of file1
 
    |        | is prior to that of file2
 
">"  | boolean | True if the modification time of file1
 
    |        | is after that of file2‎</syntaxhighlight>
 
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="ruby">test(cmd, file1 [, file2] ) → obj‎</syntaxhighlight>
 
<syntaxhighlight lang="ruby">test(cmd, file1 [, file2] ) → obj‎</syntaxhighlight>
 
==المعاملات==
 
==المعاملات==
 
===<code>cmd‎</code>===
 
===<code>cmd‎</code>===
 
+
يحدد الاختبار المراد تطبيقه. اختبارات <code>[[Ruby/File|File]]</code> التي تطبَّق على ملف واحد هي:
 +
{| class="wikitable"
 +
!المعامل <code>cmd</code>
 +
!نوع القيمة المعادة
 +
!وصف
 +
|-
 +
|<code>"A"</code>
 +
|Time
 +
|توقيت آخر دخول إلى الملف <code>file1</code>.
 +
|-
 +
|<code>"b"</code>
 +
|قيمة منطقية
 +
|يعيد <code>True</code> إن كان الملف <code>file1</code> جهازًا كتليًّا (block device).
 +
|-
 +
|<code>"c"</code>
 +
|قيمة منطقية
 +
|يعيد <code>True</code> إن كان <code>file1</code> من النوع جهازًا محرفيًّا (character device).
 +
|-
 +
|<code>"C"</code>
 +
|Time
 +
|توقيت آخر تغيير في الملف <code>file1</code>.
 +
|-
 +
|<code>"d"</code>
 +
|قيمة منطقية
 +
|يعيد <code>True</code> إن كان الملف <code>file1</code> موجودًا وكان مجلدًا.
 +
|-
 +
|<code>"e"</code>
 +
|قيمة منطقية
 +
|يعيد <code>True</code> إن كان الملف <code>file1</code> موجودًا.
 +
|-
 +
|<code>"f"</code>
 +
|قيمة منطقية
 +
|يعيد <code>True</code> إن كان الملف <code>file1</code> موجودًا وكان ملفًا عاديًّا.
 +
|-
 +
|<code>"g"</code>
 +
|قيمة منطقية
 +
|يعيد <code>True</code>إن كان البت ‎ <code>\CF{setgid}</code>‎الخاص بالملف <code>file1</code> مُعيّن (تكون false في NT).
 +
|-
 +
|<code>"G"</code>
 +
|قيمة منطقية
 +
|يعيد <code>True</code> إن كان الملف <code>file1</code> موجودًا وكانت مجموعته مساوية لمجموعة المُُستدعي.
 +
|-
 +
|<code>"k"</code>
 +
|قيمة منطقية
 +
|يعيد <code>True</code> إن كان الملف <code>file1</code> موجودًا وكان البت اللاصق (sticky bit) مُعيّنًا فيه.
 +
|-
 +
|<code>"l"</code>
 +
|قيمة منطقية
 +
|يعيد <code>True</code> إن كان الملف <code>file1</code> موجودًا وكان وصلةً رمزيةً (symbolic link).
 +
|-
 +
|<code>"M"</code>
 +
|Time
 +
|توقيت آخر تعديل على الملف <code>file1</code>.
 +
|-
 +
|<code>"o"</code>
 +
|قيمة منطقية
 +
|يعيد <code>True</code> إن كان الملف <code>file1</code> موجودًا وكان معرِّف المالك فيه (أي مالك الملف) مساويًّا للمعرف الفعلي (effective uid) للمُستدعي.
 +
|-
 +
|<code>"O"</code>
 +
|قيمة منطقية
 +
|يعيد <code>True</code> إن كان <code>file1</code> موجودًا وكان معرِّف المالك فيه (أي مالك الملف) مساويًّا للمعرف الحقيقي (real uid) للمُستدعي.
 +
|-
 +
|<code>"p"</code>
 +
|قيمة منطقية
 +
|يعيد <code>True</code> إن كان الملف <code>file1</code> موجودًا وكان من النوع fifo
 +
|-
 +
|<code>"r"</code>
 +
|قيمة منطقية
 +
|يعيد <code>True</code> إن كان الملف <code>file1</code> قابلًا للقراءة من المعرف الفعلي للمُستدعي أو مجموعته (effective uid/gid).
 +
|-
 +
|<code>"R"</code>
 +
|قيمة منطقية
 +
|يعيد <code>True</code> إن كان الملف <code>file1</code> قابلًا للقراءة من المعرف الحقيقي للمُستدعي أو مجموعته (real uid/gid).
 +
|-
 +
|<code>"s"</code>
 +
|int/nil
 +
|إن كان حجم الملف <code>file1</code> غير معدوم، فسيعيد الحجم، أو سيعيد القيمة <code>nil</code>.
 +
|-
 +
|<code>"S"</code>
 +
|قيمة منطقية
 +
|يعيد <code>True</code> إن كان الملف <code>file1</code> موجودًا وكان مقبسًا.
 +
|-
 +
|<code>"u"</code>
 +
|قيمة منطقية
 +
|يعيد <code>True</code> إن كان البت ‎ <code>setuid</code>‎الخاصة بالملف <code>file1</code>  مُعيّن.
 +
|-
 +
|<code>"w"</code>
 +
|قيمة منطقية
 +
|يعيد <code>True</code> إن كان الملف <code>file1</code> قابلًا للكتابة من المعرف الفعلي للمُستدعي أو مجموعته (effective uid/gid).
 +
|-
 +
|<code>"W"</code>
 +
|قيمة منطقية
 +
|يعيد <code>True</code> إن كان الملف <code>file1</code> قابلًا للكتابة من المعرف الحقيقي للمُستدعي أو مجموعته (real  uid/gid).
 +
|-
 +
|<code>"x"</code>
 +
|قيمة منطقية
 +
|يعيد <code>True</code> إن كان الملف <code>file1</code> قابلًا للتنفيذ من المعرف الفعلي للمُستدعي أو مجموعته (effective uid/gid).
 +
|-
 +
|<code>"X"</code>
 +
|قيمة منطقية
 +
|يعيد <code>True</code> إن كان الملف <code>file1</code> قابلًا للتنفيذ من المعرف الحقيقي للمُستدعي أو مجموعته (real  uid/gid).
 +
|-
 +
|<code>"z"</code>
 +
|قيمة منطقية
 +
|يعيد <code>True</code> إن كان الملف <code>file1</code> موجودًا وطوله معدوم (zero length).
 +
|}الاختبارات التي تطبَّق على ملفين هي:
 +
{| class="wikitable"
 +
!المعامل cmd
 +
!نوع القيمة المعادة
 +
!وصف
 +
|-
 +
|<code>"-"</code>
 +
|قيمة منطقية
 +
|يعيد <code>True</code> إن كان الملف <code>file1</code> والملف <code>file2</code> متطابقين.
 +
|-
 +
|<code>"="</code>
 +
|قيمة منطقية
 +
|يعيد <code>True</code> إن كان توقيت تعديل الملف <code>file1</code> والملف <code>file2</code> متساويين.
 +
|-
 +
|<code>"<"</code>
 +
|قيمة منطقية
 +
|يعيد <code>True</code> إن كان توقيت تعديل الملف <code>file1</code> قبل توقيت تعديل الملف <code>file2</code>.
 +
|-
 +
|<code>">"</code>
 +
|قيمة منطقية
 +
|يعيد <code>True</code> إن كان توقيت تعديل الملف <code>file1</code> بعد توقيت تعديل الملف <code>file2</code>.
 +
|}
 
===<code>file1‎</code>===
 
===<code>file1‎</code>===
 
+
الملف الأول.
 
===<code>file2‎</code>===
 
===<code>file2‎</code>===
 
+
الملف الثاني.
 
+
==القيمة المعادة==
==القيمة المُعادة==
+
يعيد كائنًا بحسب قيمة المعامل <code>cmd‎</code> أي يعاد ناتج الاختبار المطبَّق.
 
 
 
==انظر أيضا==
 
==انظر أيضا==
* التابع <code>[[Ruby/Kernel/system|system]]</code>: ينفذ التابع system الوسيط command… في صدفة فرعية (subshell).يأخذ command… أحد الأشكال التالية.
+
*التابع <code>[[Ruby/Kernel/system|system]]</code>: ينفذ الأمر المُمرَّر إليه في صدفة فرعية (subshell).
* التابع <code>[[Ruby/Kernel/throw|throw]]</code>: ينقل التابع throw الضبط (control) إلى نهاية كتلة <code>catch</code> النشطة في انتظار الوسم (tag). ويطلق <code>UncaughtThrowError</code> إذا لم يكن هناك كتلة <code>catch</code> لذلك الوسم. يوفر الوسيط الاختياري الثاني قيمة لتُعيدها الكتلة <code>catch</code>، في حال عدم تمريره ستكون قيمتها الافتراضية هي <code>nil</code>. للحصول على بعض الأمثلة، انظر <code>Kernel::catch</code>.
 
 
 
 
==مصادر==
 
==مصادر==
*[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).

مصادر