الفرق بين المراجعتين لصفحة: «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) القياسية.

مصادر