الفرق بين المراجعتين لصفحة: «Ruby/Kernel/test»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) تدقيق |
||
سطر 3: | سطر 3: | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby Kernel]] | [[تصنيف: Ruby Kernel]] | ||
يجري التابع <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" | ||
! | !المعامل <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> | |يعيد <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>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> موجودًا | |يعيد <code>True</code> إن كان الملف <code>file1</code> موجودًا وكان البت اللاصق (sticky bit) مُعيّنًا فيه. | ||
|- | |- | ||
|<code>"l"</code> | |<code>"l"</code> | ||
|قيمة منطقية | |قيمة منطقية | ||
|يعيد <code>True</code> إن كان <code>file1</code> موجودًا وكان | |يعيد <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> موجودًا وكان | |يعيد <code>True</code> إن كان الملف <code>file1</code> موجودًا وكان معرِّف المالك فيه (أي مالك الملف) مساويًّا للمعرف الفعلي (effective uid) للمُستدعي. | ||
|- | |- | ||
|<code>"O"</code> | |<code>"O"</code> | ||
|قيمة منطقية | |قيمة منطقية | ||
|يعيد <code>True</code> إن كان <code>file1</code> موجودًا وكان | |يعيد <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> | |يعيد <code>True</code> إن كان الملف <code>file1</code> قابلًا للقراءة من المعرف الفعلي للمُستدعي أو مجموعته (effective uid/gid). | ||
|- | |- | ||
|<code>"R"</code> | |<code>"R"</code> | ||
|قيمة منطقية | |قيمة منطقية | ||
|يعيد <code>True</code> إن كان <code>file1</code> | |يعيد <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> موجودًا وكان | |يعيد <code>True</code> إن كان الملف <code>file1</code> موجودًا وكان مقبسًا. | ||
|- | |- | ||
|<code>"u"</code> | |<code>"u"</code> | ||
|قيمة منطقية | |قيمة منطقية | ||
|يعيد <code>True</code>إن | |يعيد <code>True</code> إن كان البت <code>setuid</code>الخاصة بالملف <code>file1</code> مُعيّن. | ||
|- | |- | ||
|<code>"w"</code> | |<code>"w"</code> | ||
|قيمة منطقية | |قيمة منطقية | ||
|يعيد <code>True</code> إن كان <code>file1</code> | |يعيد <code>True</code> إن كان الملف <code>file1</code> قابلًا للكتابة من المعرف الفعلي للمُستدعي أو مجموعته (effective uid/gid). | ||
|- | |- | ||
|<code>"W"</code> | |<code>"W"</code> | ||
|قيمة منطقية | |قيمة منطقية | ||
|يعيد <code>True</code> إن كان <code>file1</code> | |يعيد <code>True</code> إن كان الملف <code>file1</code> قابلًا للكتابة من المعرف الحقيقي للمُستدعي أو مجموعته (real uid/gid). | ||
|- | |- | ||
|<code>"x"</code> | |<code>"x"</code> | ||
|قيمة منطقية | |قيمة منطقية | ||
|يعيد <code>True</code> إن كان <code>file1</code> | |يعيد <code>True</code> إن كان الملف <code>file1</code> قابلًا للتنفيذ من المعرف الفعلي للمُستدعي أو مجموعته (effective uid/gid). | ||
|- | |- | ||
|<code>"X"</code> | |<code>"X"</code> | ||
|قيمة منطقية | |قيمة منطقية | ||
|يعيد <code>True</code> إن كان <code>file1</code> | |يعيد <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>True</code> إن كان الملف <code>file1</code> والملف <code>file2</code> متطابقين. | ||
|- | |- | ||
|<code>"="</code> | |<code>"="</code> | ||
|قيمة منطقية | |قيمة منطقية | ||
|يعيد <code>True</code> إن كان توقيت تعديل <code>file1</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>file1</code>=== | ===<code>file1</code>=== | ||
الملف الأول. | الملف الأول. | ||
===<code>file2</code>=== | ===<code>file2</code>=== | ||
الملف الثاني. | الملف الثاني. | ||
==القيمة | ==القيمة المعادة== | ||
يعيد | يعيد كائنًا بحسب قيمة المعامل <code>cmd</code> أي يعاد ناتج الاختبار المطبَّق. | ||
==انظر أيضا== | ==انظر أيضا== | ||
* التابع <code>[[Ruby/Kernel/system|system]]</code>: ينفذ | *التابع <code>[[Ruby/Kernel/system|system]]</code>: ينفذ الأمر المُمرَّر إليه في صدفة فرعية (subshell). | ||
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-test قسم | *[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).