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

من موسوعة حسوب
< Ruby‏ | Kernel
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>system‎</code> الخاص بالصنف <code>Kernel</code> في روبي}}</noinclude> تصنيف: Ruby تصني...'
 
تدقيق
 
(مراجعة متوسطة واحدة بواسطة مستخدم واحد آخر غير معروضة)
سطر 3: سطر 3:
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Kernel]]
[[تصنيف: Ruby Kernel]]
ينفذ التابع system الوسيط command… في صدفة فرعية (subshell).يأخذ command… أحد الأشكال التالية.
ينفذ التابع <code>system</code> الأمر المُمرَّر إليه في صدفة فرعية (subshell).
<syntaxhighlight lang="ruby">commandline                : command line string which is passed to the standard shell
cmdname, arg1, ...          : command name and one or more arguments (no shell)
[cmdname, argv0], arg1, ... : command name, argv[0] and zero or more arguments (no shell)‎</syntaxhighlight>
يعيد التابع system الفيمة <code>true</code> إذا كانت حالة التعليمة command تساوي الصفر، وإلا فسيعيد <code>false</code>. ويعيد <code>nil</code> إن فشل تنفيذ التعليمة. حالة الخطأ (error status) متاحة في <code>$?</code>. وتتم معالجة الوسائط كما هو الحال في <code>Kernel.spawn</code>.
تعد وسائط القاموس (hash arguments)و env و options مثل <code>exec</code> و <code>spawn</code>. انظر صفحة <code>Kernel.spawn</code> لمزيد من التفاصيل.
 
الناتج:
<syntaxhighlight lang="ruby">config.h main.rb
*‎</syntaxhighlight>
انظر <code>Kernel.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>true</code> إذا كانت حالة الأمر <code>command...‎</code> تساوي الصفر، وإلا فستُعاد القيمة <code>false</code>. تُعاد <code>nil</code> إن فشل تنفيذ التعليمة. حالة الخطأ (error status) متاحة في ‎<code>$?‎</code>، وتٌعالج الوسائط كما هو الحال في التابع <code>[[Ruby/Kernel/spawn|spawn]]</code>.


==أمثلة==
==أمثلة==
مثال على استخدام التابع <code>system‎</code>:
مثال على استخدام التابع <code>system‎</code>:
<syntaxhighlight lang="ruby">system("echo *")
<syntaxhighlight lang="ruby">system("echo *")
system("echo", "*")‎</syntaxhighlight>
system("echo", "*")‎</syntaxhighlight>الناتج:<syntaxhighlight lang="ruby">config.h main.rb
*‎</syntaxhighlight>
==انظر أيضا==
==انظر أيضا==
* التابع <code>[[Ruby/Kernel/syscall|syscall]]</code>: يستدعي التابع syscall دالة نظام التشغيل المحددة بواسطة num، ويعيد نتيجة الدالة، أو يطلق <code>SystemCallError</code> في حال الفشل.
* التابع <code>[[Ruby/Kernel/spawn|spawn]]</code>: ينفذ تعليمة محددة، ثم يعيد معرفها (pid).
* التابع <code>[[Ruby/Kernel/test|test]]</code>: يستخدم التابع test الحرف <code>cmd</code> لإجراء عدة اختبارات على <code>file1</code> (الجدول الأول أدناه) أو على <code>file1</code> و <code>file2</code> (الجدول الثاني).
* التابع <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) القياسية.

مصادر