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

من موسوعة حسوب
< Ruby‏ | Kernel
اذهب إلى التنقل اذهب إلى البحث
(تدقيق)
 
سطر 3: سطر 3:
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Kernel]]
 
[[تصنيف: Ruby Kernel]]
ينفذ التابع <code>system</code> التعليمة المعطاة <code>command…‎</code> في صدفة فرعية (subshell). تأخذ التعليمة <code>command…‎</code>  أحد الأشكال التالية.
+
ينفذ التابع <code>system</code> الأمر المُمرَّر إليه في صدفة فرعية (subshell).
<syntaxhighlight lang="ruby"> commandline                : تعليمة نصية تُمرر إلى الصدفة القياسية
 
cmdname, arg1, ...          : تعليمة وواحد أو أكثر من الوسائط - هذا الشكل لا يستخدم الصدفة
 
[cmdname, argv0], arg1, ... :  ووسيط واحد أو أكثر  argv[0]  تعليمة و</syntaxhighlight>
 
يعيد التابع <code>system</code> الفيمة <code>true</code> إذا كانت حالة التعليمة <code>command</code> تساوي الصفر، وإلا فسيعيد <code>false</code>. ويعيد <code>nil</code> إن فشل تنفيذ التعليمة. حالة الخطأ (error status) متاحة في ‎<code>$?‎</code>. وتٌعالج الوسائط كما هو الحال في التابع <code>[[Ruby/Kernel/spawn|spawn]]</code>.
 
 
 
تعد وسائط القاموس  <code>env</code> و <code>options</code> مثل <code>exec</code> و <code>spawn</code>. انظر صفحة [[Ruby/Kernel/spawn|<code>spawn</code>]] لمزيد من التفاصيل.
 
 
 
انظر كذلك <code>[[Ruby/Kernel/exec|exec]]</code> لمزيد من المعلومات حول الصدفة (shell) القياسية.
 
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="ruby">system([env,] command... [,options]) → true, false or nil‎</syntaxhighlight>
 
<syntaxhighlight lang="ruby">system([env,] command... [,options]) → true, false or nil‎</syntaxhighlight>
 
==المعاملات==
 
==المعاملات==
 
===<code>env‎</code>===
 
===<code>env‎</code>===
بيئة التنفيذ.
+
بيئة التنفيذ. يعد هذا المعامل الذي من النوع [[Ruby/Hash|Hash]] مماثلة تمامًل لمعامل التابع <code>[[Ruby/Kernel/exec|exec]]</code> و <code>[[Ruby/Kernel/spawn|spawn]]</code>. انظر صفحة [[Ruby/Kernel/spawn|<code>spawn</code>]] لمزيد من التفاصيل.
 
===<code>command...‎</code>===
 
===<code>command...‎</code>===
التعليمة المراد تنفيذها.
+
التعليمة المراد تنفيذها. تأخذ التعليمة <code>command…‎</code>  أحد الأشكال التالية.
 +
{| class="wikitable"
 +
!شكل المعامل <code>command…‎</code>
 +
!الوصف
 +
|-
 +
|<code>commandline</code>
 +
|تعليمة نصية تُمرر إلى الصدفة القياسية
 +
|-
 +
|<code>cmdname, arg1, ...‎</code>
 +
|تعليمة نصية تُمرر إلى الصدفة القياسية
 +
|-
 +
|<code>‎[cmdname, argv0], arg1, ...‎</code>
 +
|تعليمة ووسيط واحد أو أكثر argv[0]‎.
 +
|}
 +
 
 
===<code>options‎</code>===
 
===<code>options‎</code>===
خيارات.
+
الخيارات المستعملة في ضبط العملية. يعد هذا المعامل الذي من النوع [[Ruby/Hash|Hash]] مماثل تمامًل لمعامل التابع <code>[[Ruby/Kernel/exec|exec]]</code> و <code>[[Ruby/Kernel/spawn|spawn]]</code>. انظر صفحة [[Ruby/Kernel/spawn|<code>spawn</code>]] لمزيد من التفاصيل.
==القيمة المُعادة==
+
==القيمة المعادة==
يعيد التابع <code>system</code> الفيمة <code>true</code> إذا كانت حالة التعليمة <code>command</code> تساوي الصفر، وإلا فسيعيد <code>false</code>. ويعيد <code>nil</code> إن فشل تنفيذ التعليمة.
+
تعاد القيمة <code>true</code> إذا كانت حالة الأمر <code>command...‎</code> تساوي الصفر، وإلا فستُعاد القيمة <code>false</code>. تُعاد <code>nil</code> إن فشل تنفيذ التعليمة. حالة الخطأ (error status) متاحة في ‎<code>$?‎</code>، وتٌعالج الوسائط كما هو الحال في التابع <code>[[Ruby/Kernel/spawn|spawn]]</code>.
  
 
==أمثلة==
 
==أمثلة==
سطر 30: سطر 36:
 
*‎</syntaxhighlight>
 
*‎</syntaxhighlight>
 
==انظر أيضا==
 
==انظر أيضا==
* التابع <code>[[Ruby/Kernel/syscall|syscall]]</code>: يستدعي التابع syscall دالة نظام التشغيل المحددة بواسطة num، ويعيد نتيجة الدالة، أو يطلق <code>SystemCallError</code> في حال الفشل.
+
* التابع <code>[[Ruby/Kernel/spawn|spawn]]</code>: ينفذ تعليمة محددة، ثم يعيد معرفها (pid).
* التابع <code>[[Ruby/Kernel/spawn|spawn]]</code>: ينفذ التابع <code>spawn</code> تعليمة محددة، ثم يعيد معرفها (pid).
+
* التابع <code>[[Ruby/Kernel/syscall|syscall]]</code>: يستدعي دالة نظام التشغيل المحددة بواسطة المعامل المُمرَّر إليه ويعيد نتيجة هذه الدالة أو يطلق الخطأ <code>[[Ruby/SystemCallError|SystemCallError]]</code> في حال فشل استدعائها.
 +
* التابع <code>[[Ruby/Kernel/exec|exec]]</code> لمزيد من المعلومات حول الصدفة (shell) القياسية.
  
 
==مصادر==
 
==مصادر==
*[http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-system قسم التابع system‎ في الصنف Kernel‎ في توثيق روبي الرسمي.]
+
*[http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-system قسم التابع system‎ في الصنف Kernel‎ في توثيق روبي الرسمي.]

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

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

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

system([env,] command... [,options])  true, false or nil

المعاملات

env‎

بيئة التنفيذ. يعد هذا المعامل الذي من النوع Hash مماثلة تمامًل لمعامل التابع exec و spawn. انظر صفحة spawn لمزيد من التفاصيل.

command...‎

التعليمة المراد تنفيذها. تأخذ التعليمة command…‎ أحد الأشكال التالية.

شكل المعامل command…‎ الوصف
commandline تعليمة نصية تُمرر إلى الصدفة القياسية
cmdname, arg1, ...‎ تعليمة نصية تُمرر إلى الصدفة القياسية
‎[cmdname, argv0], arg1, ...‎ تعليمة ووسيط واحد أو أكثر argv[0]‎.

options‎

الخيارات المستعملة في ضبط العملية. يعد هذا المعامل الذي من النوع Hash مماثل تمامًل لمعامل التابع exec و spawn. انظر صفحة spawn لمزيد من التفاصيل.

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

تعاد القيمة true إذا كانت حالة الأمر command...‎ تساوي الصفر، وإلا فستُعاد القيمة false. تُعاد nil إن فشل تنفيذ التعليمة. حالة الخطأ (error status) متاحة في ‎$?‎، وتٌعالج الوسائط كما هو الحال في التابع spawn.

أمثلة

مثال على استخدام التابع system‎:

system("echo *")
system("echo", "*")

الناتج:

config.h main.rb
*

انظر أيضا

  • التابع spawn: ينفذ تعليمة محددة، ثم يعيد معرفها (pid).
  • التابع syscall: يستدعي دالة نظام التشغيل المحددة بواسطة المعامل المُمرَّر إليه ويعيد نتيجة هذه الدالة أو يطلق الخطأ SystemCallError في حال فشل استدعائها.
  • التابع exec لمزيد من المعلومات حول الصدفة (shell) القياسية.

مصادر