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

مصادر